proposal: os: async file I/O using io_uring kernel interface for linux

There is a new kernel interface called io_uring in linux kernel which makes kernel space ring buffering for I/O operations which improves file I/O quite notable under some circumstances.
Article: https://kernel.dk/io_uring.pdf
WDYT about implementing os.AsyncOpen / AsyncRead functionality using this kernel feature in Go?

Note: #31908

Yes, this is a duplicate.


REQUIRE and templates with multiple parameters

REQUIRE macro doesn't work when template with multiple arguments is used inside of it.
For example:
REQUIRE(array<int,5>().size() == 5);

Gives me the following error on GCC 4.9.1:
error: macro "REQUIRE" passed 2 arguments, but takes just 1
    REQUIRE(array<int,5>().size() == 5);
In function ‘void ____C_A_T_C_H____T_E_S_T____10()’:
error: ‘REQUIRE’ was not declared in this scope
    REQUIRE(array<int,5>().size() == 5);

It works fine when only one parameter is used, like this:
REQUIRE(vector<int>().size() == 0);

It also works when the I explicitly cast the result to bool, like this:
REQUIRE(bool(array<int,5>().size() == 5));

I encountered this same issue. You have to use parenthesis:
REQUIRE((array<int,5>().size()) == 5);

This is just because REQUIRE is defined to take one argument. The C preprocessor is blind to template arguments, so it treats your call as:
REQUIRE((array<int),(5>().size()) == 5);

Ok thanks, I didn't know that. Closing the issue.


Simplifying FeatureMap

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

84 of 88 (95.45%)  changed or added relevant lines in 6 files are covered.
No unchanged relevant lines lost coverage.
Overall first build on refactor-of-map at 91.565%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/cogent3/core/annotation.py
10
11
90.91%

src/cogent3/draw/drawable.py
3
4
75.0%

src/cogent3/core/location.py
55
57
96.49%

Totals

Change from base Build<PHONE_NUMBER>:
91.6%

Covered Lines:
29831

Relevant Lines:
32579

💛  - Coveralls


Dart Package

Hello,
Thanks for your widget. I like it and use in my project :)
I think you should change plugin type to "Dart Package".
Because you don't need kotlin/java or objc-swift code.
Please see:
https://flutter.dev/docs/development/packages-and-plugins/developing-packages#package-types

Ah, I see. It was a Dart Package because Android Studio helps me to generate the example projects. I'll update it when I'm free. Pull requests are welcome!

Closing this due to inactivity.


SW-3345 bump web-components to pick up date format change

Or we can wait for the PopoverMultiSelect version which I'm guessing will be very soon...


Can't figure out how to adjust defaults by passing arguments to node-pg-migrate

I'm trying to change the default migration folder and tried to do the following: npm run migrate -m /new/path/to/migrations using the command line.
But it returns an error, so I tried a lot of variations of configuration and I feel like I'm missing something, but couldn't find any more documentation or example.
(I can run migrations fine with npm run migrate up)
Can someone please point me as to how to do this?

see https://stackoverflow.com/a/14404223/4790644
It should be npm run migrate -- -m /new/path/to/migrations


write operations in event listeners

I've become a little confused on how to create listeners that perform write operations.
For example, I have a RegisterUser command which creates a User instance and adds it to my UserRepository. The User's constructor raises a UserRegistered event. I have an event listener that looks like below.
The problem arises when I send the FindUserById command.  The $command->getUser() returns a null. I'm assuming that's because of the FinishesHandlingMessageBeforeHandlingNext middleware. Because the RegisterUser command is still being processed, the FindUserById command get's put on a queue(I believe) and doesn't get executed right away.
I could interact with my UserRepository directly in the listener but when I set a confirmation token and attempt to persist that User, the entity manager's flush() method will never be called, leaving the change un-persisted. Any ideas/tips?
class SendConfirmationEmailListener
{
    /**
     * @var MessageBus
     */
    private $commandBus;

    /**
     * @var string
     */
    private $systemUserId;

    /**
     * @param MessageBus $commandBus
     * @param string $systemUserId
     */
    public function __construct(MessageBus $commandBus, $systemUserId)
    {
        $this->commandBus = $commandBus;
        $this->systemUserId = $systemUserId;
    }

    /**
     * @param UserRegistered $event
     */
    public function notify(UserRegistered $event)
    {
        $command = new FindUserById($this->systemUserId, $event->getUserId());
        $this->commandBus->handle($command);

        if (!$command->getUser()->isEnabled()) {
            $this->commandBus->handle(new AssignConfirmationToken($this->systemUserId, $event->getUserId()));
            $this->commandBus->handle(new SendConfirmationEmail($this->systemUserId, $event->getUserId()));
        }
    }
}

Good questions!
Well, SimpleBus, without being too explicit about it, encourages a true command/query segregation. This means that command handlers can't have return values and they can't be easily tricked into having them as well. Of course, if everything is being handled synchronously you can do what you're doing and set a return value on a command, even though in this case I'd say, having a FindUserById command isn't all that useful - you might as well just inject the repository and find the user yourself :) A command is supposed to change something in the application, while FindUserById is a query which shouldn't have any side-effects of course.
Also, yes, you are experiencing the effect of the FinishesHandlingMessageBeforeHandlingNext middleware, because a command isn't immediately handled. However, using the repository itself to find the user solves this problem right-away.
About transactions: each command will be handled in its own transaction. It's a good idea to dispatch new commands for everything that causes a new change.

I hope this helps, if not: just let me know!

It adds a new perspective. Thanks for the response!
I created the FindUserById, and other getter commands because I have Authorization(I know we don't agree on this :) ), statistics gathering, and command logging middleware. I like the idea of truly having a single point of entry into my application. I guess I need to read up on command/query segregation.
How would you go about solving my dilemma of assigning a new confirmation token and sending an email on the UserRegistered event?

:)
Well, I may not understand this correctly, but if the  second, command is dependent on the first to be executed (I think it is), then you should dispatch the first command, and while handling that command, dispatch an event (like ConfirmationTokenAssigned), subscribe to it, and dispatch the second command (SendConfirmationEmail).

Hmm...I'm using the confirmation token for 2 things:

Confirming their account via link in an email.
Resetting their password via link in an email.

My listener could look like this but it seems really hacky. Maybe it's not, I don't know :/
class ConfirmationTokenAssignedListener
{
	public function notify(ConfirmationTokenAssigned $event)
	{
		$user = $this->users->findById($event->getUserId());

		if ($user->isEnabled()) {
			$this->mailer->sendPasswordResetEmail($user);
		} else {
			$this->mailer->sendAccountConfirmationEmail($user);
		}
	}
}

I could create two separate tokens and fire different events when they change but that seems a little overkill but my be what I need if I want that explicitness. Thoughts?

Come to think of it. I could decorate my UserRepository to fire events. I think this will work nicely.
class User
{
	public function __construct(UserId $id, Email $email)
	{
		$this->id = (string)$id;
		$this->email = $email;

		$this->record(new UserRegistered($this->id));
	}

	public function isNew()
	{
		foreach ($this->recordedMessages() as $event) {
			if ($event instanceof UserRegistered) {
				return true;
			}
		}

		return false;
	}
}

class EventfulUserRepository implements EventfulUserRepository
{
	public function add(User $user)
	{
		if ($user->isNew()) {
			$this->eventBus->handle(new UserRegistering($user->getId()));
		}

		$this->users->add($user);
	}
}

I can have a listener subscribed to two these new events.
class AccountConfirmationListener
{
	public function assignToken(UserRegistering $event)
	{
		$user = $this->users->findById($event->getUserId());

		if (!$user->isEnabled()) {
			$user->setConfirmationToken(new ConfirmationToken());
		}
	}

	public function sendEmail(UserRegistered $event)
	{
		$user = $this->users->findById($event->getUserId());

		if (!$user->isEnabled() && $user->getConfirmationToken()) {
			$this->mailer->sendAccountConfirmationEmail($user);
		}
	}
}

well crap. that won't work with doctrine since the $user isn't in doctrine's identity map. No user will be found in the assignToken() method. Dangit.

@dadamssg Did you manage to find a solution for this? Maybe I'm repeating myself, but the flow is:
start transaction - handle command - commit transaction - process events
If you want to dispatch events in other places, you shouldn't do it be directly calling the event bus, instead, record the event (like described here: http://simplebus.github.io/MessageBus/doc/message_recorder.html and here: http://simplebus.github.io/SymfonyBridge/doc/event_bus_bundle.html).

Right, I understand all of this. I think I've come to a solution. First, let me layout a scenario.
A user registers. This raises a UserRegistered event. A ConfirmationEmailListener picks that up and sends an email. The email doesn't get sent in the RegisterUserHandler directly because the user entity hasn't been committed by the transaction. It also makes sense because sending an email is a side affect of storing the user. It's not the primary action in this case.
That's all fine and good but what happens if the email didn't get sent or it went into the user's spam folder? A ResendConfirmationEmail command seems reasonable...except the handler will look strange and broken to someone new to the system.
class ResendConfirmationEmailHandler
{
    /**
     * @var UserRepository
     */
    private $users;

    /**
     * @param UserRepository $users
     */
    public function __construct(UserRepository $users)
    {
        $this->users = $users;
    }

    public function handle(ResendConfirmationEmail $command)
    {
        $user = $this->users->findById($command->getUserId());

        $user->setConfirmationToken(new ConfirmationToken());

        $this->users->add($user);
    }
}

The mailer isn't being used in the handler because we cannot be sure that the new confirmation token was successfully committed to the database. Our DoctrineUserRepository::add() method doesn't call $this->getEntityManager()->flush(). Soooo our ResendConfirmationEmailHandler doesn't actually send an email? Wtf? The programmer has to be aware that setting a new token will raise a ConfirmationTokenChange event that will get dispatched later and that a listener will pick that up and actually do the sending. That feels wrong to me.
To me, the solution is to have better, more explicit, control over transactions. That means calling flush() myself and not using the the WrapsMessageHandlingInTrasaction middleware. That way my command handler can look more reasonable.
class ResendConfirmationEmailHandler
{
    //

    public function handle(ResendConfirmationEmail $command)
    {
        $user = $this->users->findById($command->getUserId());

        $user->setConfirmationToken(new ConfirmationToken());

        $this->users->add($user);

        $this->mailer->sendAccountConfirmationEmail($user);
    }
}

Because I'm not calling flush() in my add() method, I can be sure the change has been persisted.
So what about commands that need to be wrapped in a transaction? I have two options:

Create a middleware for this:

class WrapsSuitableCommandsInTrasaction
{
    public function handle($command, callable $next)
    {
        if ($command instanceof RequiresTransaction) {
            $this->wrapInTransaction($command, $next);
            return;
        }

        $next($command);
    }

    private function wrapInTransaction($command, callable $next)
    {
        $em = $this->registry->getManager($this->emName);

        try {
            $em->transactional(function () use ($command, $next) {
                $next($command);
            });
        } catch (\Exception $e) {
            $this->registry->resetManager($this->emName);
            throw $e;
        }
    }
}

Control the transaction explicitly within the handler:

class RequestPasswordResetHandler
{

    public function __construct(UserRepository $users, TransactionManager $tx, UserMailer $mailer)
    {
        //
    }

    public function handle(RequestPasswordReset $command)
    {
        $user = $this->users->findById($command->getUserId());

        $user->setConfirmationToken(new ConfirmationToken());

        $this->persistUser($user);

        $this->mailer->sendPasswordResetInstructions($user);
    }

    private persistUser(User $user)
    {
        $this->tx->begin();

        try {
            $this->users->add($user);
            $this->tx->commit();
        } catch (\Exception $e) {
            $this->tx->abort();
            throw $e;
        }
    }
}

I understand I'll be missing out on doctrine's more efficient way of persisting data when multiple entities get ~persist()ed and then flush()`ed but I think I'm will to take that trade off for the more explicit handlers.

Here's my first draft of creating the compiler pass.

I've been reading your code again and I think you're heading in the wrong direction here. Some comments:

the actual database transaction is an infrastructural concern, which you shouldn't be worried about inside the command handler itself.
using the token for two different things is confusing (but I guess you realized this as well ;)).
sending the email in the event listener if it's the core "task" isn't the right thing to do (but I think you agree with that as well!).
I think the problem lies with modifying the User entity and setting a confirmation token on it. I think it's better to invert the relation here: the RequestPasswordReset command handler creates a new PasswordResetRequest entity, which naturally contains the token and the user id. Now the event, PasswordResetRequested actually triggers the email to be sent.

I hope this helps!

@matthiasnoback that is an interesting take on the problem, your last point. I'll have to think about that. Thanks!

 And thanks for sharing!


writeWithoutResponse method returns "value must be provided" error

Describe the bug
When using the writeWithoutResponse method from @capacitor-community/bluetooth-le to send data to a BLE device, I receive an error stating that the value must be provided, even though the value parameter is included in the method call. I'm sure I'm attempting to write to the correct deviceId, service, and characteristic after checking the results of the debugCharacteristics method that I wrote.
Error message from Xcode console
⚡  To Native ->  BluetoothLe connect 50922472
⚡  BluetoothLe - Connecting to peripheral <CBPeripheral: 0x30192cdd0, identifier = 93BBD767-803D-5005-9DF6-07F7333D0977, name = Halcyon BLE Server, mtu = 0, state = disconnected>
⚡  BluetoothLe - Connected to device <CBPeripheral: 0x30192cdd0, identifier = 93BBD767-803D-5005-9DF6-07F7333D0977, name = Halcyon BLE Server, mtu = 23, state = connected>
⚡  BluetoothLe - Resolve connect|93BBD767-803D-5005-9DF6-07F7333D0977 Successfully connected.
⚡  BluetoothLe - Connected to peripheral. Waiting for service discovery.
⚡  BluetoothLe - didDiscoverServices
⚡  BluetoothLe - didDiscoverCharacteristicsFor 1 1
⚡  BluetoothLe - Resolve connect Connection successful.
⚡  TO JS undefined
⚡  [log] - Connected to device: Halcyon BLE Server
⚡  To Native ->  BluetoothLe getServices 50922473
⚡  TO JS {"services":[{"uuid":"0000abcd-cc7a-482a-984a-7f2ed5b3e58f","characteristics":[{"descriptors":[],"properties":{"write":true,"authenticatedSignedWrites":false,"extendedProperties":false,"notifyEncryptionRequired":false,"read":false,"indicate":false,"writeWi
⚡  [log] - All services and characteristics: {
  "services": [
    {
      "uuid": "0000abcd-cc7a-482a-984a-7f2ed5b3e58f",
      "characteristics": [
        {
          "descriptors": [],
          "properties": {
            "write": true,
            "authenticatedSignedWrites": false,
            "extendedProperties": false,
            "notifyEncryptionRequired": false,
            "read": false,
            "indicate": false,
            "writeWithoutResponse": true,
            "broadcast": false,
            "notify": false,
            "indicateEncryptionRequired": false
          },
          "uuid": "00001234-8e22-4541-9d4c-21edae82ed19"
        },
        {
          "properties": {
            "authenticatedSignedWrites": false,
            "write": false,
            "extendedProperties": false,
            "notifyEncryptionRequired": false,
            "read": false,
            "indicate": false,
            "broadcast": false,
            "writeWithoutResponse": false,
            "notify": true,
            "indicateEncryptionRequired": false
          },
          "descriptors": [
            {
              "uuid": "00002902-0000-1000-8000-00805f9b34fb"
            }
          ],
          "uuid": "00005678-8e22-4541-9d4c-21edae82ed19"
        }
      ]
    }
  ]
}
⚡  [log] - Target characteristic properties: {"authenticatedSignedWrites":false,"write":false,"extendedProperties":false,"notifyEncryptionRequired":false,"read":false,"indicate":false,"broadcast":false,"writeWithoutResponse":false,"notify":true,"indicateEncryptionRequired":false}
⚡  To Native ->  BluetoothLe writeWithoutResponse 50922474
ERROR MESSAGE:  {"message":"value must be provided","errorMessage":"value must be provided"}
⚡  [error] - {"message":"value must be provided","errorMessage":"value must be provided"}

To Reproduce
await BluetoothLe.connect({ deviceId: device.deviceId, timeout: 5000 });
console.log('Connected to device:', device.name || device.deviceId);

await this.debugCharacteristics(device.deviceId);

await BluetoothLe.writeWithoutResponse({
  deviceId: device.deviceId,
  service: this.serviceUUID,
  characteristic: this.readCharacteristic,
  value: textToDataView('?')
});

Expected behavior
I expect the writeWithoutResponse method to successfully write the provided data to the BLE device without errors. The data should be transmitted to the specified characteristic of the connected BLE device.
Screenshots
Plugin version:

@capacitor-community/bluetooth-le: 6.0.1

Smartphone:

Device: iPhone 14 Pro Max
OS: iOS 18.1

So I realized my first mistake was using DataView objects for the value parameter instead of strings while developing for iOS/Android. However, when I make the change I'm getting a different error in XCode.
Changed code
await BluetoothLe.connect({ deviceId: device.deviceId, timeout: 5000 });
console.log('Connected to device:', device.name || device.deviceId);

await this.debugCharacteristics(device.deviceId);

await BluetoothLe.writeWithoutResponse({
  deviceId: device.deviceId,
  service: this.serviceUUID,
  characteristic: this.readCharacteristic,
  value: '?'
});

Error message from Xcode console
⚡  To Native ->  BluetoothLe connect 38183105
⚡  [log] - Scan stopped
⚡  BluetoothLe - Connecting to peripheral <CBPeripheral: 0x3026bc750, identifier = 93BBD767-803D-5005-9DF6-07F7333D0977, name = Halcyon BLE Server, mtu = 0, state = disconnected>
⚡  BluetoothLe - Connected to device <CBPeripheral: 0x3026bc750, identifier = 93BBD767-803D-5005-9DF6-07F7333D0977, name = Halcyon BLE Server, mtu = 23, state = connected>
⚡  BluetoothLe - Resolve connect|93BBD767-803D-5005-9DF6-07F7333D0977 Successfully connected.
⚡  BluetoothLe - Connected to peripheral. Waiting for service discovery.
⚡  BluetoothLe - didDiscoverServices
⚡  BluetoothLe - didDiscoverCharacteristicsFor 1 1
⚡  BluetoothLe - Resolve connect Connection successful.
⚡  TO JS undefined
⚡  [log] - Connected to device: Halcyon BLE Server
⚡  To Native ->  BluetoothLe getServices 38183106
⚡  TO JS {"services":[{"uuid":"0000abcd-cc7a-482a-984a-7f2ed5b3e58f","characteristics":[{"uuid":"00001234-8e22-4541-9d4c-21edae82ed19","properties":{"notifyEncryptionRequired":false,"read":false,"authenticatedSignedWrites":false,"notify":false,"broadcast":false,"in
⚡  [log] - All services and characteristics: {
  "services": [
    {
      "uuid": "0000abcd-cc7a-482a-984a-7f2ed5b3e58f",
      "characteristics": [
        {
          "uuid": "00001234-8e22-4541-9d4c-21edae82ed19",
          "properties": {
            "notifyEncryptionRequired": false,
            "read": false,
            "authenticatedSignedWrites": false,
            "notify": false,
            "broadcast": false,
            "indicateEncryptionRequired": false,
            "extendedProperties": false,
            "indicate": false,
            "write": true,
            "writeWithoutResponse": true
          },
          "descriptors": []
        },
        {
          "uuid": "00005678-8e22-4541-9d4c-21edae82ed19",
          "properties": {
            "notifyEncryptionRequired": false,
            "read": false,
            "authenticatedSignedWrites": false,
            "notify": true,
            "broadcast": false,
            "indicateEncryptionRequired": false,
            "extendedProperties": false,
            "indicate": false,
            "write": false,
            "writeWithoutResponse": false
          },
          "descriptors": [
            {
              "uuid": "00002902-0000-1000-8000-00805f9b34fb"
            }
          ]
        }
      ]
    }
  ]
}
⚡  To Native ->  BluetoothLe writeWithoutResponse 38183107
CapacitorCommunityBluetoothLe/Conversion.swift:30: Fatal error: Unexpectedly found nil while unwrapping an Optional value

Screenshot

I figured out the issue—it was due to me using BluetoothLe directly instead of utilizing BleClient as recommended in the README. My apologies for the confusion. I'll go ahead and close this issue. Thank you to the developers for your hard work!

Thanks for reporting back with your eventual solution here @natehurley
Glad you were able to figure this out in the end!


support open-ended datetime intervals, fix camelcase violations

Related Issue(s): #137
Proposed Changes:

support open-ended datetime intervals (e.g., ../{datetime}, /{datetime}, {datetime}/.., or {datetime}/
fix a few camelcase violations

PR Checklist:

[X] I have added my changes to the CHANGELOG or a CHANGELOG entry is not required.

Closes #137


New-Command: yammer message remove

Implements #1106

Coverage remained the same at 100.0% when pulling 01e4b65ca74f975b8f4f09860818709f7c82da4e on plamber:yammer-message-delete into 84c571d8d7d98d5994643e52d09212c4716b1c21 on pnp:dev.

@VelinGeorgiev had some troubles with the tests. Sorry for the multiple pushes.

Hey @VelinGeorgiev, I believe the URL of your branch where the PR to be merged got mixed up. Could you please double check it?

https://github.com/VelinGeorgiev/office365-cli/tree/yammer-msg-remove
Here it is. I am sorry.

Merged manually. Thank you! 👍


Extention not working (no autocompletions / Intellisense suggestions)

Typical Angular2 CLI setup, with Bootstrap CSS added via npm, CSS works when tested in code and project compiled, e.g.:
 ...
The lightning pressed and shows updated status, but NO autocompletions / Intellisence suggestions
Please advise

Hi @igpeev, just updated the extension to fix this issue. It seems that I committed a change that was causing the node_modules folder to be ignored, therefore causing problems like yours. Sorry for the inconvenience, just click the Update button on your Extensions tab to get the correction.

Igor,
Great thanks for the prompt reaction.
Will check tm and re.
Sent from my iPhone

On May 28, 2017, at 19:34, Igor H. Vieira<EMAIL_ADDRESS>wrote:
Hi @igpeev, just updated the extension to fix this issue. It seems that I committed a change that was causing the node_modules folder to be ignored, therefore causing problems like yours. Sorry for the inconvenience, just click the Update button on your Extensions tab to get the correction.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Np 👍

Igor,
As promsed - tested, working as expected.
10x once again.
Cheers! :)
On Sun, May 28, 2017 at 9:00 PM, Igor H. Vieira<EMAIL_ADDRESS>wrote:

Np 👍
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zignd/HTML-CSS-Class-Completion/issues/53#issuecomment-304530163,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUTjjD5RUKFR3F1syAsWMdbuWHrt1uebks5r-bZagaJpZM4NorNN
.


Trivia Commands Addition

This cog will add a trivia game to the bot, the cog was tested and working on my other bot and the only changes that may need to be added are the instructions of the bot prefix, the tested bot used dashes. Future features that can be added include a leader board and score tracking. Also added in a second cog for a weather command which is also tested and working.

I believe all should be well now, tested the cog on my test bot and was running properly

Ok great thanks! Glad to be of help, the person who recommended adding some stuff to this bot also told me there was a discord for this bot if there is and I'm welcome to join my id is: Keegan#6959 if you can dm me the invite


Gatsby - SEO + Markdown Improvements + Book Chapter 1

Summary

SEO improvements

/robots.txt
/sitemap.xml

Package locking (no more next)
Re-enabling flowtype checking
lots of Markdown rendering improvements, should have all known features required for entering the Mastering Bitcoin Cash book
Book pagination
Basic Image captions
Special unordered list styling, lets see if we like it
Entered Chapter 1 of Mastering BCH.
Tip component for markdown to highlight a tip or danger.  Can extend more types easily.

oh, lol. Next time I'll take better notice of which branches are to be merged. Lets do it!


Remove trailing-white-space

I suggest the developers of PIXI team could install some plugins for remove trailing-white-space in their code editor.
BTW , I use sublime text 3 , the feature built in it.

My bad, I’ll add an eslint rule to enforce.


Purge; credit; contrib instructions

Purge things we're not using and don't want to expose
Ensure proper credit to the excellent
https://github.com/yoheimuta/hubot-aws/ in multiple places
Add instructions for installing, contributing, configuring our fork
of this software

👍   lgtm


Re-enable CSP via whitelist

This will re-enable the Discord CSP but whitelist all currently known used remote resources. This would finally fix #442
I personally think that we should strongly encourage themes to move off of some of these more sketchy and less reputable domains and onto others, then remove them from this list before approving.

A PR for improving security! That's great! I think we should all strive to improve security as much as possible.
I would like to add some things that warrants serious consideration:
CSP defines a security boundary of domains whose content you trust to be safe.
There is no reasonable believe that code hosted on GitHub is safe. Implementing CSP is unfortunately not going to improve the security of BetterDiscord, as BetterDiscord inherently needs to "trust" code from these type of untrusted sourced.
These CSP rules would not stop a malicious actor, but would only limit the freedom that BetterDiscord gives. Thereby increasing the barrier of entry for future development that may need to rely on resources on a domain that is not included in this whitelist.
Feel free to hit me up if you want to discuss possible alternatives, but I think that's a different topic for a different time :)

Any status on this?


python3Packages.pyweatherflowrest: init at 0.1.21

Motivation for this change
Python module to get data from WeatherFlow Weather Stations
https://github.com/briis/pyweatherflowrest
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 151312 run on x86_64-linux 1

2 packages built:

python38Packages.pyweatherflowrest
python39Packages.pyweatherflowrest


Is linux-arm64 on the roadmap

error CONTAINER006: The Microsoft.NET.Build.Containers package does not (yet) support publishing for linux-arm6
I want to build a container running on a Kubernetes ARM cluster potentially.
Is this on the roadmap

Yes, we have an open PR that brings support for other runtime identifiers: #247
We hope to have it merged soon.


when use goroutine prepared cql not worked like get query

for example when oder get , the first query will prepared use 3ms, and other will 1ms,
when goroutine, cold every query cost 3ms, the prepared cql not woked. only when get one row make the cql prepared ready.

it's like Hotspot Invalid

Hey.
The issue is related to the gocql driver and it's automated query preparation.
You need to elaborate on the issue you are facing because it's unclear what happens.

ok, i open in gocql issue and close here,THX


Add device

Added
-Remove current_user method in ApplicationController, devise will provide us with one.
-Install and setup devise.

Can register a new user.
-User logs in with a combination of email and password.
-Hashed password should be stored in the database.
-Modify the views in devise for registration and login

Hi @ecekpo,
While you made a great effort in this project, I cannot proceed to review your code.
Invalid Code Review Request
Kindly ensure you collaborate with your coding partner on this project
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.


Generate documentation pages

Like with ReadTheDocs or something similar.

An initial sprint yields poor results: https://majority-judgment-java.readthedocs.io

https://github.com/bronto/javasphinx is archived
I'll try https://github.com/bluekeyes/sphinx-javalink next


chore: add new example app with visual editing enabled

The example app uses a new movies Sanity project so we can freely play around with the data.

@stipsan , I'm not 100% sure what it is I need to configure to get visual editing to work in deployment previews.
I've:

set up CORS and a read token here: https://www.sanity.io/organizations/oeRzV7Cst/project/4j2qnyob/api
set up environment variables here: https://vercel.com/sanity-io/sanity-astro-movies/settings/environment-variables
configured the presentationUrl here: https://github.com/sanity-io/sanity-astro/pull/188/files#diff-c62970b6ec6bd7c00a0dfcbdbc855f9984b8bc799b4f8c6c279757897dca4555R14-R20

Can you spot what's missing?


Instance Screenshot

I'd like to request the instances.getScreenshot method to return a screenshot of the logged in GCE Instance and not the welcome splash screen. This is what gcloud compute instances get-screenshot returns and is more useful than just the splash screen.

Please ignore, the error was on my side


Does not work in Mist, cannot access Mist's web3 provider

https://github.com/uzyn/web3-loader/blob/b9b0efdadfce68ab521421838207d63da490b84e/lib/web3-helper.js#L8
I think this doesn't work. After being compiled by Webpack, this code ends up in its own function to which var web3; is scoped to. Thus is is impossible to access web3.currentProvider provided by Mist.
Maybe we can check for window.web3 instead?

Thanks for the PR.


Help for showing error page when URI is accessed through browser

Hello, just wanna ask if it is possible to show an error page when a user is accessing the wsuri through the web browser. currently my setup is using stunnel to redirect wss on a specific port to a port on ws. upon accessing it via https i get a blank page.

This is resolved, I edited a few files inside react


fix!: use ISO 3166 standard for country codes

Now library aders to ISO 3166 standard.
As a consequence, United Kingdom users should now use "GB" and no more "UK".


Removing a child from a TabBarView doesn't properly update the TabBarView

Steps to Reproduce
Run this dartpad.

I took the Tabs demo code from material.io and instead of using DefaultTabController, I'm using my own TabController. And I added a FloatingActionButton to delete the current Tab.

Code
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(title: 'Flutter Demo', home: HomePage());
  }
}

class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
  late TabController _tabController;

  List<Widget> _tabs = [
    Tab(text: 'DOGS', icon: Icon(Icons.favorite)),
    Tab(text: 'CATS', icon: Icon(Icons.music_note)),
    Tab(text: 'BIRDS', icon: Icon(Icons.search)),
  ];
  List<Widget> _tabViews = [
    Center(child: Text('DOGS')),
    Center(child: Text('CATS')),
    Center(child: Text('BIRDS')),
  ];

  void initState() {
    _tabController = TabController(length: 3, vsync: this);
    super.initState();
  }

  void _deleteTab() {
    int _index = _tabController.index;
    _tabs.removeAt(_index);
    _tabViews.removeAt(_index);
    _tabController.dispose();
    _tabController = TabController(length: _tabs.length, vsync: this);
    setState(() {});
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      floatingActionButton: FloatingActionButton(
        backgroundColor: Color(0xff5808e5),
        onPressed: _deleteTab,
        child: Icon(Icons.delete),
      ),
      appBar: AppBar(
        title: Text('Fixed Tabs'),
        automaticallyImplyLeading: false,
        backgroundColor: Color(0xff5808e5),
        bottom: TabBar(
            isScrollable: true,
            controller: _tabController,
            indicatorColor: Colors.white,
            tabs: _tabs),
      ),
      body: TabBarView(controller: _tabController, children: _tabViews),
    );
  }
}

Expected results:
After Deleting, The Tab on the TabBar and TabBarView should be deleted.
Actual results:
Tab is deleted from the TabBar, but it's TabBarView exists. And it was maybe deleted, otherwise I would have received this error:
Controller's length property (<actual tab length>) does not match the number of tabs (<>) present in TabBar's tabs property.
Here's a screen recording of the issue:
https://user-images.githubusercontent.com/77046231/131840355-a72a16dc-1ffe-43d1-afc4-f0c3aab6aa47.mp4
There are two tabs in the TabBar, but three children of TabBarView.

Logs
The following assertion was thrown while handling a gesture:
'package:flutter/src/material/tab_controller.dart': Failed assertion: line 212 pos 12: 'value >= 0 && (value < length || length == 0)': is not true.
2

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack
#2      TabController._changeIndex
package:flutter/…/material/tab_controller.dart:212
#3      TabController.index=
package:flutter/…/material/tab_controller.dart:250
#4      _TabBarViewState._handleScrollNotification
package:flutter/…/material/tabs.dart:1466
#5      Element.visitAncestorElements
package:flutter/…/widgets/framework.dart:4045
#6      Notification.dispatch
package:flutter/…/widgets/notification_listener.dart:138
...
Handler: "onDown"
Recognizer: HorizontalDragGestureRecognizer#64c0a
    start behavior: start

[✓] Flutter (Channel stable, 2.2.3, on Linux, locale en_GB.UTF-8)
    • Flutter version 2.2.3 at /home/mayank/snap/flutter/common/flutter
    • Framework revision f4abaa0735 (9 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /home/mayank/android-sdk/
    • Platform android-30, build-tools 30.0.2
    • ANDROID_SDK_ROOT = /home/mayank/android-sdk/
    • Java binary at: /snap/android-studio/114/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
    • cmake version 3.10.2
    • ninja version 1.8.2
    • pkg-config version 0.29.1

[✓] Android Studio (version 2020.3)
    • Android Studio at /snap/android-studio/114/android-studio
    • Flutter plugin version 59.0.2
    • Dart plugin version 203.8292
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] Connected device (3 available)
    • Redmi 4 (mobile) • 6b0b6837d440 • android-arm64  • Android 10 (API 29)
    • Linux (desktop)  • linux        • linux-x64      • Linux
    • Chrome (web)     • chrome       • web-javascript • Google Chrome 92.0.4515.107

• No issues found!

I can reproduce this issue on stable 2.2.3 and master 2.6.0-1.0.pre.160 with the sample code provided by the author above.
After removing a tab and it's corresponding view from the list, the TabBar gets updated however, the TabBarView isn't updated. You will only see 2 tabs but can scroll 3 children.

flutter doctor -v
[✓] Flutter (Channel master, 2.6.0-1.0.pre.160, on macOS 11.5.1 20G80 darwin-arm, locale en-GB)
    • Flutter version 2.6.0-1.0.pre.160 at /Users/nexus/dev/sdks/flutters
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f77c453ab6 (7 hours ago), 2021-09-02 00:58:19 -0400
    • Engine revision d877a4bbcd
    • Dart version 2.15.0 (build 2.15.0-68.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.5.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.59.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.25.0

[✓] Connected device (3 available)
    • iPhone 12 (mobile) • F2592D43-5FE3-46BB-8A2B-A38BA468DCE9 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)    • macos                                • darwin-arm64   • macOS 11.5.1 20G80 darwin-arm
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 93.0.4577.63

• No issues found!

[✓] Flutter (Channel stable, 2.2.3, on macOS 11.5.1 20G80 darwin-arm, locale en-GB)
    • Flutter version 2.2.3 at /Users/nexus/dev/sdks/flutter
    • Framework revision f4abaa0735 (9 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.11.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.59.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.25.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 11.5.1 20G80 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 93.0.4577.63

• No issues found!


Implement feature to recall commands

Resolves #133
Introduces a feature that allows users to recall past commands using the up and down arrow keys when in the command box.
Specifications are as follows:

If there is no command to recall, no changes to cursor or text field.
If the current command is a fresh command (i.e. not edited from a recalled command), it will be cached when recalling past commands.
When at the oldest command, any attempts to back further in the past will result in no changes to the cursor or text field.
When at the newest recorded command, the down arrow key will recall the cached command.

Codecov Report

Merging #113 into master will increase coverage by 0.43%.
The diff coverage is 44.00%.

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

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 44.00000% with 28 lines in your changes missing coverage. Please review.

Project coverage is 78.23%. Comparing base (d58d2f7) to head (ae028f6).
Report is 619 commits behind head on master.

Files with missing lines
Patch %
Lines

src/main/java/seedu/address/ui/CommandBox.java
0.00%
28 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##             master     #113      +/-   ##
============================================
+ Coverage     77.79%   78.23%   +0.43%
- Complexity      655      777     +122
============================================
  Files           107      123      +16
  Lines          1905     2164     +259
  Branches        194      223      +29
============================================
+ Hits           1482     1693     +211
- Misses          378      420      +42
- Partials         45       51       +6

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add missing bitwise NOT

Description
I got fails with this operator while doing some tests

Thanks. Can you look at the error?


Soft-delete doesn't seem to be working

We've softDeletes() in the migration
The model uses SoftDeletingTrait, and mentions the name of date field.
I've verified the actual document inside MongoDB has a deleted_at entry, with date-timestamp
However, calling ModelName::all(), still returns the soft-deleted field.

Thanks for the great work. Really appreciate it!

I have not found this issue, added Jenssegers\Mongodb\Eloquent\SoftDeletingTrait not the laravel one, deleted an entry and found the deleted_at key, listing all entries via all(); returns all except with deleted_at.
so it worked for me.

Yeah ! Its fixed my issue. I too faced same problem.
Before i called trait named => use SoftDeletes;
This one fixed  => use SoftDeletingTrait
Thank you


Fixes while trying to use extender

Found some documentation issues
Also fixed the build-docker.sh to make it easier to pass in what things to install rather than commenting out bits that I do not have.

Not sure I feel necessary to add documentation, it is already confusing which paths to take in there to be honest. The currently documented path still works (ie no arguments) and this is just for those to avoid having to comment it out and dirty their tree.


function to fetch multiple docs at once from the docstore

Is your feature request related to a problem? Please describe.
In https://github.com/quickwit-oss/quickwit/pull/3226, I discovered the best access pattern to the docstore to minimize cpu usage and query duration is rather non-obvious. From inside tantivy, it's much easier to know what this pattern is, and to access things accordingly.
Describe the solution you'd like
implement an async fn fetch_docs(&self, doc_ids: &[DocId]) -> crate::Result<Vec<Document>> which would figure on its own how to not decompress or read a block twice when multiple docs are inside the same doc.
[Optional] describe alternatives you've considered
What was in https://github.com/quickwit-oss/quickwit/pull/3226: reorder fetches in a clever way to best leverage the existing cache. It severely lack explicitness and show of intent

(unassigning myself as other people are working on it)


all: system tests for manager, fuzzer, image creation, coverage, etc

Currently we have some unit tests, but no system tests for more complex features.
Two recent examples:
https://github.com/google/syzkaller/commit/9467cacb1c3020e2a7ddd60b40dfbbf5a1733785 broken coverage collection almost entirely
https://github.com/google/syzkaller/commit/ea9496cdbdfc9679a413f184502bb6d33bf44c6a broke image creation for GCE (worked locally for qemu)
We need some infrastructure on GCE that will test all these complex features. How/what exactly needs to be done is open question for now, because e.g. full manager testing is hard. But at least it must be able to create VMs during testing, run kcov-instrumented kernel, etc. Solution for #603 must be incorporatable into this infrastructure.

terratest is a promising option.
I will enable us to:

Create integration tests. Like for the recent GCP serial port #4459 .
Run GCE with docker and check selected features availability.
It can eventually be used to setup simple syzbot and do e2e test.

Bonus: testing library in golang.
Challenge: It requires terraform knowledge but starting from simple tests it shouldn't be a problem.


Use correct desktop id in AppData

Fixes #411.

@micahflee The current desktop id in AppData file is wrong. Please, merge this PR to fix the issue.


CODEOWNERS: Fix up ordering

Apparently when I previously sorted using sort, some subdirectories
ended up listing above the parent directory. Fix up the remaining
incorrect directory ordering.
Signed-off-by: Joe Stringer<EMAIL_ADDRESS>

@tgraf Only noticed that the way sort ordered the directories was wrong after you committed it, apologies about that. This should fix it up properly.


S2S VPN, MTU Size problems

The USG communicates with a basic IPSEC tunnel, and doesn't support Path-based MTU discovery (PMTU).
USG VTI interfaces support a hard-coded MTU size, but most network-vendors support PMTU.

Testing:

Sonicwall<>USG:  USG needs a hard-coded value to match the PMTU discovered value from the Sonicwall.
Watchguard<>USG: Watchguard supports either hard-coding, or PMTU. I have both configured for different tunnels, with a hard-coded USG side, all operational.
Cisco ISR: Aside from IKEv2 DH groups missing, this seems to work without hard-coding the MTU value.
SophosXG: Pmtu seems to work; but on the USG we have MSS clamping that appears not to be functioning out of the box. More time needed to investigate this.

Confirmed working. no need to investigate SophosXG anymore.


[L2] Read ENS properties from L2 on gateway

Feature Request
After implementing the read information from a layer 2 feature, it will be necessary to create some integration tests. The tests will be responsibly to ensure that the flow of interaction between each part of the project is working properly and test bad scenarios to see how the code handles it.
Describe Preferred Solution
To complete this issue, it is be necessary the following tests:

[ ] Main flow of reading information from layer 2 as specified in the image at the additional context;
[ ] Flow with a error in the final validation step;
[ ] Contract's address not exist;
[ ] Wrong calls in the resolver contract;

Additional Context
The right expected flow of interactions is the following one:

duplicated by #20


Error Timeout - Opinions?

Hey everyone,
So we have some Mac's at our institution that have not checked in within the past month or so, since they are professors and live off campus and most likely don't use their machines (I am guessing, or they might have even reimaged/restored from an old time machine backup and messed up the configuration). Our users tend to do that from time to time..
Either way, opinions! Do you think there should be a timeout for the errors? We have 22 errors: 5 of which haven't been seen in over a month, 10 haven't been seen in over a day, 6 haven't been seen in the past 2 hours or more, and the rest recently checked in.
I think it should be a configurable timeout period, so I can specify if a unit hasn't checked in within X amount of time, remove the error from the database (until they check in again of course).
If everyone thinks this is a good idea, I will go ahead and start coding it!

Error timeout as when the client was last seen by MunkiReport? There's a pull request that adds the ability to change what the Client Activitiy widget shows as being active/inactive. It's pull request #1110

I think it should be a configurable timeout period, so I can specify if a unit hasn't checked in within X amount of time, remove the error from the database (until they check in again of course).

For instance, if machine X reports an error (say it cannot get a manifest because it is on an insecure network that doesn't have access), but it goes offline and isn't used for over 2 days, then I would like the it to remove the error so it doesn't sit there and clog up the error widget. I have a handful of machines that haven't been reporting back and in turn clogging up the list of machines that have actual errors that need to be fix.
Does that make more sense?

That does make more sense. Some of the widgets do hide errors and clients after a certain amount of time. You'd like the threshold of when the widgets hide the client to be configurable?

Basically yes, maybe even when you click on the warning/errors on the dashboard, have it bring you to a different page that summarizes the errors/warnings. For instance, have a table with the error reported date, severity (warning/error), host name and the error  in a summary.
I can think of multiple ways of achieving better readability for errors and when they were reported.
It is something I can look into developing but I was looking for a general consensus if this is a common struggle or if it might just be my organization and how we work.


VT Sequences rendered improperly in Far Manager

Windows Terminal version
1.18.1462.0
Windows build number
10.0.19045.2965
Other Software
Far Manager, version 3.0.6161.0 x64
Steps to reproduce
Microsoft.WindowsTerminalPreview_1.18.1462.0_x64.zip
in portable mode, uac off, under Admin
use with FAR 100% times
work with FAR
settings.zip
Expected Behavior
No response
Actual Behavior
sometime (sic!) in FAR console after some different actions i got strange codes:
ANSI?/ESC sequenced?
like:
5;67;18m
5;43;34m;29m
5;55;26m;37m
5;28;15m
35;69;9m;47;10m97;6m8m49;10m3m
probably when use Microsoft.WindowsTerminal_1.17.11461.0_x64.zip
this no have problem
I cant how reproduce.

today i see this on version wt Microsoft.WindowsTerminal_1.17.11461.0_x64.zip

This looks very much like something disabling VT processing mode. Having exact repro steps would be helpful here. Perhaps there's some child process you're launching that's turning VT mode off (and FAR isn't turning it back on?)

trouble present when i not run anything...
i see this may be when change focus app1/app2/app3 & when use event from mouse?
i dont know how reproduce this situation
i use windows 27 year
far manager 25 year
conemu 12 year
but never see this effects.
WT I try use ~week ( i dont like UWP)

options on my FAR Manager:
[x] Use Virtual Terminal for rendering
[x] Fullwidth-aware rendering
[ ] ClearType-friendly redraw (can be slow)

@alabuzhev have you seen reports of this recently?

I saw something like this a few years ago. That time it was conemu hooking some functions and sending these sequences instead of expected input.
I suggest removing all conemu dlls from far\plugins first, if not yet. It could be that some hooks stay active even when you're not using it explicitly.

if try record program Bandicam
area: area around cursor -> full screen
WT+Far+folow the mouse record in bandicam.mp4.zip
we can see many codes in far console

i check fresh Far30b6164.x64.20230615.7z
problem still exist
i check process
Far.exe
OpenConsole.exe

Thanks for filing. We're going to mark this as a /dup of #15540.

Supposedly the problem has gone away with Microsoft.WindowsTerminalCanary_latest_x64.zip terminal-1.20.3491.0
first day use after preview 1.19.2311.13002 where problem exist too...


support IPv6

Does it support IPv6?

I can confirm that by default sniproxy listens on both ipv4 and ipv6. the upstream connections also seem to work with them. so answer is yes, it should work


Necessary changes that presented themselves while fixing up the example apps

Description
Necessary changes that presented themselves while fixing up the example apps.

For contributor use:

[x] Targeted PR against master branch
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the standards mentioned here.
[x] Updated relevant documentation
[x] Re-reviewed Files changed in the Github PR explorer
[ ] Added appropriate labels

Sorry for using the same branch as last time - it muddies up the other PRs.


[Task]: tests for window listener

Is there an existing issue for this?
Copy of https://github.com/appsmithorg/appsmith-ee/issues/1187
Description

[x] #21380
[x] Clean up worker and main thread logic (right now, it's repetitive)
Watch out for handling error messages. (can we log into AppsmithConsole from the worker thread?)

https://theappsmith.slack.com/archives/C02JT9CSE6L/p1678367281902089

cypress test overwrites window.parent (check if experimentalModifyObstructiveThirdPartyCode helps)
unit test stringifies the callback (check if latest approach in handling callback helps)

working as expected tested this on the DP url.


Issue from website page 显示来自网上的图片

From URL: https://www.flutterchina.club/cookbook/images/network-image.md
http 的图片怎么加载

百度 开启允许http权限

@FangRen I suppose you meant the page https://flutterchina.club/cookbook/images/network-image/ .


Adding Trim String changes to DataFrom Function as is from other functions

Bug fix where trims string for slash for only one type of datatype

@devorbitus Just wanted to bring this to your attention.


Using CUB (planned) 2.1.0's batched memcpy

PR ( https://github.com/NVIDIA/cub/pull/359 ) landed in CUB recently. Looks like this will be part of CUB 2.1.0. This would allow batching multiple memcpy's together.
Potentially would be useful in operations like concatenate, stack, block, etc. Anything involving multiple copies between arrays

I'd love to make #6700 as the first step.


Fixed the behavior of validate_user function in validations.py.

Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it!
Le jeu. 22 avr. 2021 à 18:39, google-cla[bot] @.***> a
écrit :

Thanks for your pull request. It looks like this may be your first
contribution to a Google open source project (if not, look below for help).
Before we can look at your pull request, you'll need to sign a Contributor
License Agreement (CLA).
📝 Please visit https://cla.developers.google.com/
https://cla.developers.google.com/ to sign.
Once you've signed (or fixed any issues), please reply here with @googlebot
I signed it! and we'll verify it.
What to do if you already signed the CLA Individual signers

It's possible we don't have your GitHub username or you're using a
different email address on your commit. Check your existing CLA data
https://cla.developers.google.com/clas and verify that your email is
set on your git commits
https://help.github.com/articles/setting-your-email-in-git/.

Corporate signers

Your company has a Point of Contact who decides which employees are
authorized to participate. Ask your POC to be added to the group of
authorized contributors. If you don't know who your Point of Contact is,
direct the Google project maintainer to go/cla#troubleshoot (Public
version https://opensource.google/docs/cla/#troubleshoot).
The email used to register you as an authorized contributor must be
the email used for the Git commit. Check your existing CLA data
https://cla.developers.google.com/clas and verify that your email is
set on your git commits
https://help.github.com/articles/setting-your-email-in-git/.
The email used to register you as an authorized contributor must
also be attached to your GitHub account
https://github.com/settings/emails.

ℹ Googlers: Go here
https://goto.google.com/prinfo/https%3A%2F%2Fgithub.com%2Fgoogle%2Fit-cert-automation-practice%2Fpull%2F14013
for more info.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/google/it-cert-automation-practice/pull/14013#issuecomment-825052877,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AP463RJPKSBIVMJKAJDHXMLTKBNMLANCNFSM43M64XYQ
.


Primes Cargo.toml not referenced and crate-type not explained

In the pythonic section, adding and explaining some of the contents of Cargo.toml, used to build the primes shared library, would provide additional documentation.
It's the first time that dynamic libraries have been build using Cargo.
The introduction section used clang to compile shared C libraries.
The arrays section used rustc to compile static libraries.
Explain what each crate-type does.
rlib doesn't seem to provide any use. The reference docs indicate it's useful for compiling static libraries and executables.
cdylibindicates primes will be compiled as a dynamic "system" library, Allowing it to be loaded from other languages.  Omitting rlib still results in it working when called from main.py.

What is the difference between a dynamic system library and dynamic Rust library?
My guess would be that cdylib exposes the extern C functions so that other languages can call into them.
The standard dylib may not do that.

As far as I know, a dynamic system library (usually *.so or *.dll - corresponding to the cdylib crate-type) is a PE or ELF binary file which follows a well-defined format that your linker can use when stitching together binaries and resolving symbols to make your final compiled executable. You can think of it as a binary containing a bunch of symbols pointing to chunks of executable machine code.
A rlib on the other hand is the Rust compiler's way of representing a compiled artefact, usually a crate. It's completely implementation defined and not meant to be used by anyone other than rustc, although from memory it's pretty much just a standard archive like what you'd get from the ar tool (think of it as a collection of normal object files merged into a single file). Presumably, the rlib could contain Rust-specific information about a crate and not just the compiled code for functions. So stuff like trait definitions, impl blocks, or even some serialized version of MIR.
I'm assuming a dylib is just a version of rlib which can be dynamically linked instead of containing the code for all its dependencies like the static rlib.
I believe you can technically use a rlib in place of a normal object file or archive (*.a) and compile it into your C/C++/whatever programs. However because the rlib format is purposefully not specified and has no stability guarantees, the compiler team reserve the right to change it if they want to.

The difference is that Rust dylibs still contain additional Rust metadata (such as the MIR of not-yet specialized generic functions and public traits and such). That might trip some code assuming specific layout (I think I've seen unloading such a lib segfault on OS X) and obviously leads to some bloat. cdylib removes all Rust metadata.
See the RFC for some glimpses (sadly, it's not very detailed). https://github.com/rust-lang/rfcs/blob/master/text/1510-cdylib.md


[8.x] Fix custom channels for model broadcasting being ignored

Fix for issue #40478
Model broadcasting seemed like a very convenient way for real-time updates on the frontend, so I gave it a try.
Ran into an issue when I wanted to change the channel the events are broadcasted on.
As per docs, I added BroadcastsEvents trait on the model along with
    public function broadcastOn($event)
    {
        return [new PrivateChannel('foo-bar-baz')];
    }

This did not yield expected results, as the events kept broadcasting only on the default model channel.
I dug around for a bit and the culprit seems to be in https://github.com/laravel/framework/blob/8940ff3c9c643f8abcca026a6341fdfcfc83e983/src/Illuminate/Database/Eloquent/BroadcastsEvents.php#L112
We check if (! empty($this->broadcastOn($event)) || ! empty($channels)) { to ensure that there are channels to broadcast on, however:
return broadcast($instance->onChannels(Arr::wrap($channels)));
we completely ignore the channels we defined in broadcastOn. It's only broadcasted on $channels.
Changing https://github.com/laravel/framework/blob/ac6fc32c2933d5868a2c0d2aea4af9405d710378/src/Illuminate/Database/Eloquent/BroadcastsEvents.php#L119
to return broadcast($instance->onChannels(array_merge(Arr::wrap($channels), $this->broadcastOn($event)))); rectifies the issue.

This shouldn't be necessary. Typically, channels would be null in that line you sent. Then, later in BroadcastableModelEventOccurred we check if it is empty and call broadcastOn like you suggest.
Your change would break passing specific channels as an override directly to a model method like broadcastCreated.

Hi. I encountered the same issue using the BroadcastsEvents for my models.
I used something like this on the broadcastOn method:
public function broadcastOn($event)
{
    return [new PrivateChannel('organization.gova.members')];
}

I was using clockwork to monitor the broadcast and I can confirm that the custom channels are ignored. I tried @wokes solution and it worked.
Is there another workaround for this one aside from modifying the vendor files?
I really like this feature implemented on our new build.


PR: Update spyder-kernels to 3.0.2

Description of Changes
Update spyder-kernels to 3.0.2
Issue(s) Resolved

Part of #23133
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: dalthviz

Note: Failing test come from pyqt5-sip new release not being compatible with Python 3.8
Building wheel for PyQt5-sip (pyproject.toml): started
  Building wheel for PyQt5-sip (pyproject.toml): finished with status 'error'
  error: subprocess-exited-with-error

  × Building wheel for PyQt5-sip (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [12 lines of output]
      running bdist_wheel
      running build
      running build_ext
      building 'PyQt5.sip' extension
      creating build/temp.linux-x86_64-cpython-38
      gcc -pthread -B /home/runner/micromamba/envs/test/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/runner/micromamba/envs/test/include -fPIC -O2 -isystem /home/runner/micromamba/envs/test/include -fPIC -I/home/runner/micromamba/envs/test/include/python3.8 -c apiversions.c -o build/temp.linux-x86_64-cpython-38/apiversions.o
      In file included from sipint.h:21,
                       from apiversions.c:16:
      sip.h:18:2: error: #error "This version of PyQt5.sip requires Python v3.9 or later"
         18 | #error "This version of PyQt5.sip requires Python v3.9 or later"
            |  ^~~~~
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for PyQt5-sip

Hello @dalthviz! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file setup.py:

Line 247:80: E501 line too long (106 > 79 characters)


Check values in opensearch-dashboards/pliugin/opensearch_dashboards.json.

Signed-off-by: dblock<EMAIL_ADDRESS>Description
Opens  opensearch_dashboards.json from bundled OpenSearch Dashboards components and checks the versions in them. This ensures consistency of the package being produced.
Tested with the current manifest that includes alerting:
2021-09-30 23:00:38 INFO     Recording plugins artifact for alertingDashboards: plugins/alertingDashboards-1.1.0.zip (from /tmp/tmpkb8_1a0c/alertingDashboards/artifacts/plugins/alertingDashboards-1.1.0.zip)
2021-09-30 23:00:38 INFO     Checked /tmp/tmpkb8_1a0c/alertingDashboards/artifacts/plugins/alertingDashboards-1.1.0.zip (<IP_ADDRESS>)
2021-09-30 23:00:38 INFO     Created build manifest /home/ubuntu/source/opensearch-project/opensearch-build/dblock-opensearch-build/artifacts/manifest.yml
2021-09-30 23:00:45 INFO     Done.

Issues Resolved
Closes https://github.com/opensearch-project/opensearch-build/issues/618
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #665 (1de226e) into main (60b82a7) will increase coverage by 0.33%.
The diff coverage is 98.24%.

@@            Coverage Diff             @@
##             main     #665      +/-   ##
==========================================
+ Coverage   86.85%   87.18%   +0.33%
==========================================
  Files          68       69       +1
  Lines        1818     1873      +55
==========================================
+ Hits         1579     1633      +54
- Misses        239      240       +1

Impacted Files
Coverage Δ

bundle-workflow/src/system/config_file.py
97.50% <97.50%> (ø)

...ensearch_dashboards/build_artifact_check_plugin.py
96.00% <100.00%> (+6.00%)
:arrow_up:

Continue to review full report at Codecov.

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


Project file cleanup

Changes

Project file cleanup.

Project files used to be edited by UIs, but the new csproj format tends to be edited by hand more frequently. I made that change to improve project file readability, but I can remove the newlines if you prefer.

Not yet, let me let it summer a bit and see what I think first. Thanks for the improvements.


Improvement in generic schema generation

Currently if you have a generic model and later substitute it we re-generate the entire schema by walking all of the types. This makes schema generation very expensive.
I propose that instead we wrap types as follows:
generic_model = {
    "type": "definitions",
    "schema": {
        "type": "model",
        "fields": {
            "foo": {
                "type": "definitions-ref",
                "ref": "T::some-ref",
            }
        }
    },
    "definitions": [
        {
            "type": "any",
            "ref": "T::some-ref",
        }
    ]
}

concrete_model = {
    "type": "definitions",
    "schema": generic_model,
    "definitions": [
        {
            "type": "int",
            "ref": "T::some-ref",
        }
    ]
}

This has the potential to greatly improve generics schema generation performance.

@sydney-runkle created https://github.com/pydantic/pydantic-core/tree/typevar-schema-changes today which has the changes to enable this to work in pydantic-core.
I spoke with @dmontagu and he brought up two important points:

Performance vs. analyzing the schema and simplifying it after replacing type vars.
Issues with nested generics.

For (1) I ran this benchmark:
from typing_extensions import TypeVar

from pydantic_core import core_schema as cs, SchemaValidator

# schema for a generic list of T
T = TypeVar('T')
X = list[T]
generic_schema = cs.definitions_schema(
    cs.list_schema(cs.definition_reference_schema('T')),
    [
        cs.any_schema(ref='T')
    ]
)

# substitute T with float
Y = X[float]

# the result of this proposal
concrete_schema = cs.definitions_schema(
    generic_schema,
    [
        cs.float_schema(ref='T')
    ]
)
v2 = SchemaValidator(concrete_schema).validate_python

# an "ideal" simplified schema that requires re-writing the entire schema
simplified_concrete_schemas = cs.list_schema(cs.int_schema())
v3 = SchemaValidator(simplified_concrete_schemas).validate_python

%timeit v2([1.0, 2.0, 3.0])
%timeit v3([1.0, 2.0, 3.0])

Which gave me 167 ns ± 2.85 ns and 188 ns ± 3.68 ns so a ~12% slowdown. Maybe that's okay, maybe it's not. Maybe we can make it less of a performance drag to use definitions.
Here's the example for (2) that is currently broken with this proposal / branch:
from __future__ import annotations
from ctypes import cast

from typing_extensions import TypeVar

from pydantic_core import core_schema as cs, SchemaValidator

class MyGeneric[T]:
    int_field: MyGeneric[int] | int
    str_field: MyGeneric[str] | str
    generic_field: MyGeneric[T] | T

X = MyGeneric[float]

x_schema = cs.definitions_schema(
    cs.definitions_schema(
        cs.definition_reference_schema(schema_ref='MyGeneric'),
        [
            cs.any_schema(ref='T'),
            cs.model_schema(
                MyGeneric,
                cs.model_fields_schema(
                    {
                        'int_field': cs.model_field(
                            cs.union_schema(
                                [
                                    cs.int_schema(),
                                    cs.definitions_schema(
                                        cs.definition_reference_schema(schema_ref='MyGeneric'),
                                        [
                                            cs.int_schema(ref='T'),
                                        ]
                                    )
                                ]
                            )
                        ),
                        'str_field': cs.model_field(
                            cs.union_schema(
                                [
                                    cs.str_schema(),
                                    cs.definitions_schema(
                                        cs.definition_reference_schema(schema_ref='MyGeneric'),
                                        [
                                            cs.str_schema(ref='T'),
                                        ]
                                    )
                                ]
                            )
                        ),
                        'generic_field': cs.model_field(
                            cs.union_schema(
                                [
                                    cs.definition_reference_schema(schema_ref='T'),
                                    cs.definitions_schema(
                                        cs.definition_reference_schema(schema_ref='MyGeneric'),
                                        [
                                            cs.definition_reference_schema(schema_ref='T', ref='T'),
                                        ]
                                    ),
                                ]
                            )
                        )
                    }
                ),
                ref='MyGeneric',
            ),
        ]
    ),
    [
        cs.float_schema(ref='T')
    ],
)

x_validator = SchemaValidator(x_schema)

outer = {
    'int_field': {'int_field': 1, 'str_field': 'a', 'generic_field': 2},
    'str_field': {'int_field': 1, 'str_field': 'a', 'generic_field': '2'},
    'generic_field': 3,
}
x: X = x_validator.validate_python(outer)
assert isinstance(x.generic_field, float)
assert isinstance(x.int_field, MyGeneric), x.int_field
assert isinstance(x.int_field.generic_field, int), x.int_field.generic_field  # fails, is actually float
assert isinstance(x.str_field, MyGeneric), x.str_field
assert isinstance(x.str_field.generic_field, str), x.str_field.generic_field  # fails, is actually float


Acceptance Criterion - Common Workflow Language

This is intended to be a long running ticket to organize our thoughts on the acceptance criterion for Common Workflow Language. Generally, acceptance criterion address issues related to quality, performance and expressiveness.

Thanks @kern3020. We are betting on CWL and Brad has taken some steps implementing support for it.


Progress doesn't import on python 3.10 in windows

i fixed this with my PR
https://github.com/d-k-bo/python-makemkv/pull/8


CRITICAL: plash-docker-daemon's socket is alway gid 101

which could be anything on the host.
plash-docker-daemon should start docker with the socket with the root group

now it is


Refactoring of DB pages, and new UI features

ref: #6048
... to switch my brain from that file_status stuff ...
This PR converts DB pages to reuse the HOC. Also db_dis and db_edit were merged into one - db_entry. Because it was semantically one page. Also allowed to get rid of get_state_db_edit in the router. A bit better code structure and html structure in general as well as slight CSS simplification. That all for this part of the subject.
New UI features and experiments
I intentionally picked less critical pages to introduce the new mechanisms. It looks like a huge PR, yes it is, but it really impacts just the DB pages for the moment.
And also to be able to build complexity in steps (especially with the table component - which can be improved on later stages)
Page based CSS
So CSS management in one file became difficult already for long. It makes sense to handle CSS per component.

Both DB overview and DB entry pages have dedicated MIME object (name convention: abapgit_css_page_...).
Editing fits well in W3MI_POLLER flow.
For the standalone version it merges directly into the component class, thus couples code and style close together
Note! Theming theoretically becomes more difficult because there is no differentiation anymore. But I think this is for good. On a deeper glance theming - is the set of color variables ! This requires some discipline with colors. Which is also easier to maintain in small files. So this is how it should be properly.

Technically:

a component has an acces to gui_services
which exposes asset_manager->register_asset
which allows registering direct content (abapmerge) or the mime_object_name (like in UI_FACTORY)
page class has a new attribute - extra_css (and also extra_js for future use) - which allows referring an additional css sheet (via the HOC)
extra CSS is then taken care of by CSS processor
all very aligned with the ui_core architecture :)

And I hope it makes sense in the light of future UI plans too.
Table component
Second major feature is a framework class for tables. It is rather simple at the moment. Intentionally. I'd say don't use it for other refactoring yet. Next step would be to apply it in stage or repo_view or repo_over to implement filtering and other complex stuff.
Brief architecture:

there is zcl_abapgit_html_table class, you initiate it passing the cell renderer interface (zif_abapgit_html_table)
then you define columns (descriptively, like in the html_form)
then you call render passing some global css styles, ids, but most importantly the data table
the interface is supposed to be implemented by the component or its local class (!!! e.g. in case of several tables !!!). It is then called for extra info for each row, and to render each cell
cell renderer receives the row index, row structure and, when applicable, field value
cell renderer returns the content (string ot html instance) and the needed CSS classes and meta stuff
this is very flexible for cell formatting. Also in fact repeats the render_item pattern, which can be seen in almost all pages, but without all the routine clutter <table>, <tr>, <td> and stuff
cleaner and more standartised, also in the light of potential binding JS to the HTML structure on the client side

Small stuff

dedicted validate_entry_type in persistence_db to remove it from pages
possibility to change page title from a component on re-render (page_title_provider)
small improvements in td/th methods of html

TODO soon: describe new CSS approach in docs, +- move the above text there

Haven't tested so just general comments

DB page refactor: 👍
Page-based CSS: I'm undecided if this is a good idea. Now one potentially has to hunt to find where the CSS is maintained. Ideally all CSS is component-based and pages are based on (various) components so should not need any special CSS. This is now going into the opposite direction. How many CSS files will we end up with? Same question for JS... I prefer to have just two central files.
Table-component: 👍

Note: several files need a pretty print ;-)

Hmmm. To rise the contrast: would you prefer developing AG as a set of objects or in a single file like standalone version ? Also look at real web projects as well as to most popular js libs approaches and I think you'll change your opinion.

Let's take the DB css as an example. It's all for styling a table... it should be a table component with default styles that work in the majority of cases (there might be data/column specific styles which are passed with the column spec). Why do we need extra css for that? The current css needs refactoring as stated in https://github.com/abapGit/abapGit/issues/3530 and imho all page-specific styles should be replaced with component-styles.
I'm not sure what a "real web project" is but the AG UI is quite different. The UX is "simple" and that's what many like about it. Pages, toolbars, tables, forms. All but "tables" are in good shape. Standardizing "tables" via zcl_abapgit_html_table will allow to have a very clean implementation. I don't see where we need "extra css" or "extra js". There should be less and less of either (one example is "staging" where the JS is causing multiple issues).

It's a very good example in fact.

Table. Absolutely agree. That's a good next step. But the main reason is that the table becomes a component. As well as the Form before. Now it's unified. And by the way nothing requires for table CSS styles to be in the common file. It may be assigned to the class like with the db page. (I didn't think if it is needed, but it is a possibility)
At the same time look at .db-entry pre or to some extent .entry-tag. They are DB page specific.

Problem is that designing a universal style set is quite a challenge. And from what I can see real project do not end in pure Bootstrap or Material design. There are always some exceptions. Look at Fiory.  So, yes, there should be commonly used components. But they won't cover 100%. Also most of modern JS-IN-CSS libraries assume that styles are close to components which use them - it's because people gravitate to that approach in practice. Common approach is to develop in separate dedicated files, then preprocess, bundle, treeshake, compress, whatever to optimize production objectives.
Developing of separate stylesheet is more convenient. As you're focused. As you should care less about name conflicts (by the way separate CSS mean less CSS styles at the same moment on a page). The testability of components is better. The convenience of access is solved by tooling. W3MIPOLLER is quite good already, but I have a couple of improvement ideas to simplify multifile development. Good tooling rules. This is the direction to improve things. E.g. I'd like to have CSS in SCSS notation somehow. Ideally if AG UI and backend are far enough, and if AG UI is localized it would make it possible to develop it on vscode or similar, using preprocessors and other modern stuff.
Or JS. A page uses maximum 20% of the code there. Yet navigation in that huge file is terrible. It's really like development of ag_standalone.

Ideally, how I'd see the UI dev for AG if we want to keep both serverside rendering and have some code reuse for external UI. I'd like to have some kind of Vue.js approach. Where there is a component that consists of html template + JS + CSS as a view. And then a model filling that view. CSS and JS is kind of solved with this PR. html template - theoretically we can look into direction mustache templates (and this - though it need a lot of improvement). Then the abap page becomes a model/controller. And the html template can be reused extenally (because mustache syntax is universal). But that's just an idea.

Done and rebased

Pulling can result in an error since a method in zcl_abapgit_asset_manager was changed to an interface + alias. Standard SAP does not like such change when it scans the class/interface source. Similarly, you can get errors like this (which is from a different PR  since I didn't screenshot the issue this time):

I'm not sure if it's caused by the change to interface or by having an alias. Anyway, workaround is to pull twice (or three times).

needs rebase

rebased.
Aliases: yes, I noticed this before as well. I think it makes sense to go through where used and adjust to use interface and the remove the alias. I didn't do it because the PR would become even larger.

tested again and works. merging.

And somewhat improved dev flow for multiple files as promised ... (see video demo) and w3mimepoller readme
https://user-images.githubusercontent.com/15635498/225389675-01d92ec0-f8bf-4d5d-900d-42e45f941b52.mp4


⚠ Montello Country House has degraded performance

In 4127efd, Montello Country House ($SITE_MCH) experienced degraded performance:

HTTP code: 200
Response time: 20072 ms

Resolved: Montello Country House performance has improved in e59969c after 9 minutes.


Async popovers look bad

Bug description:
If a popover needs to load some content first, it'd be much better not to show it until the content is loaded. Because now it doesn't look pretty at all: an empty popover first, then it jumps around before taking up the right position. Sometimes (when the edge of the screen is near) it even ends up in the wrong position.
Also would be great if the async content loading mechanism was more flexible and could get the content from an arbitrary promise, not only from URLs
Link to minimally-working plunker that reproduces the issue:
https://plnkr.co/edit/blzYaBhHg5ZtICVAar8u?p=preview
Version of Angular, UIBS, and Bootstrap
Angular: 1.5.8
UIBS: 2.2.0
Bootstrap: 3.3.7

If using a template, it is generally recommended to bundle all the templates with the application to avoid issues like this. A workaround could be to load the template, then open the popover - not ideal, and introduces its own UX issues. One could also try fetching all the templates as soon as a user hits the view to avoid any UI problems here.
For content loading from an arbitrary promise, this could introduce security concerns for a 1-1 replacement of the popover-template feature with this new proposal. There is the popover-html feature, but it doesn't compile any directives - that may be fine, not quite sure the exact use case you're solving though.

If using a template, it is generally recommended to bundle all the templates with the application to avoid issues like this.

Even if the template is preloaded, it may contain some dynamically loaded content (e.g. ng-include). Dynamic content in popovers is a really common use case. And if the content is loaded dynamically, we'll face these resizing issues.

An illustration for my previous comment: https://plnkr.co/edit/URENYnwdeyBl3Pqe2iz9?p=preview
Async popovers are really common, aren't they? E.g. hover someone's avatar on Twitter. You'll see a popover with dynamically loaded content inside. And promises are just a generic representation of asynchronous operations. HTTP requests aren't the only source of data. For example, we may need to load content from IndexDB.

What would be a good way to handle this situation though? We would have no idea when to recalculate the size of the popover...this seems like a situation where we don't have a great way in the library itself to improve the UX itself.

The solution is simple.. We just shouldn't show the popover if it's not ready yet.

But how would we know if data is being fetched from within the popover content?

That's why I'm talking about promises. If the component gets a promise instead of plain string content, it should wait until it's resolved.

We also have this issue.


Small spelling fixes

Hi, Mithro.
Sorry for the slow response. We actually use the word "enablements" in ABK lab when referring to technology nodes.
I'll fix the other typo.
Thanks,
-- Mateus


Enable OS X builds on Travis. Change coveralls -> coverage in .travis.yml

Run all tests on OSX. Skip compressed textures on linux
Run coverage on OSX and not linux because linux will fail the compress texture tests.
Previously, travis was running npm run coveralls, however, this should run npm run coverage to generate the report. That said, should this run coverage AND coveralls?

The reason for this being the original PR where this was added https://github.com/AnalyticalGraphicsInc/gltf-pipeline/pull/4/files.
I believe the workflow was to run npm run test, which would then run jsHint and coverage and then coveralls would upload this. However, now, test does not run coverage and there are no files for coveralls target to upload.
Another evidence of this is that the coveralls report has not been updated since Jul 13, 2016.

Previously, travis was running npm run coveralls, however, this should run npm run coverage to generate the report. That said, should this run coverage AND coveralls?

We want to use coveralls to track the code coverage of each PR/commit so we know if it went up or down, so please set this up however is correct.  It worked when I first enabled it, but something could have changed.

@pjcozzi Using npm run coverage && npm run coveralls got it to work. Here is the latest coveralls report.

Changes Unknown when pulling a5d3c1605eb444f7b2aa365e8265e44a99a04c5a on shehzan10:travis-osx into ** on AnalyticalGraphicsInc:master**.

Looks good!

What's the deal with the test failure: https://travis-ci.org/AnalyticalGraphicsInc/gltf-pipeline/builds/198655665

What's the deal with the test failure: https://travis-ci.org/AnalyticalGraphicsInc/gltf-pipeline/builds/198655665

This is a failure that I have seen on OS X (both locally and on travis) and have made @lilleyse aware of it. According to him, because is a "longer" test (processing each image into multiple formats at 2 levels of compression), it might be timing out.
In my observation, it has happened intermittently hence you do not see it on the other OS X build.

Let's come up with a reasonable solution so the tests are reliable, e.g.,

Break the test into multiple tests, or
Use a smaller image, or
Use faster compression options, or
Disable the test

Break the test into multiple tests

This is the easiest to do. One test per format, which a common helper function among them.

All else looks good to me too.

@lilleyse What I did is to create a test within a for-loop. So the test itself becomes the "helper" function and the for-loop creates the tests for each format.

Changes Unknown when pulling 62f4bc63ae96e69201bf240b80129b09c22218d7 on shehzan10:travis-osx into ** on AnalyticalGraphicsInc:master**.

Changes Unknown when pulling 62f4bc63ae96e69201bf240b80129b09c22218d7 on shehzan10:travis-osx into ** on AnalyticalGraphicsInc:master**.

I think this should be safe to merge now.


Improve test_ragone_chart.

Since load charge is not implemented yet. This test cannot reach 100% of coverage.

Actually what you want to use here is probably BOOST_DATA_TEST_CASE. I use it in test_equivalent_circuit.cc or you can directly look at the doc

[Current coverage][cc-pull] is 92.30%

Merging [#148][cc-pull] into [master][cc-base-branch] will increase coverage by +0.66%

File ...test_ragone_chart.cc was modified. more

Misses -27
Partials 0
Hits +27

@@             master       #148   diff @@
==========================================
  Files            67         67
  Lines          4283       4309    +26
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           3924       3977    +53
+ Misses          359        332    -27
  Partials          0          0

Powered by Codecov. Last updated by [1db33dc...19f5b18][cc-compare]
[cc-base-branch]: https://codecov.io/gh/ORNL-CEES/Cap/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/ORNL-CEES/Cap/compare/1db33dc7bc25e868c9134277cd04741a31f89ce4...19f5b180e9ec3dfce03edccacc30d0432c638e13
[cc-pull]: https://codecov.io/gh/ORNL-CEES/Cap/pull/148?src=pr

I use BOOST_DATA_TEST_CASE

OK this test is not 100% because of the constant load and the throws. Do you want me to remove the throws?

what's the reason for not having the constant load here?

because we only have equivalent circuits and they do have the method implemented don't they?

No you're right...

We could use expected failure otherwise

Also, would you remove SeriesRC:: and ParallelRC::reset(...)?

You can use the decorator boost::unit_test::expected_failures(N)

No, you are right. The code throws because in the test there are several places where we don't support constant_load. I didn't pay attention why the code was throwing.

I have removed the useless throws and the load_charge.


Proposal: Use jsondiff in tests to have clear output

For now when you are running tests and have some errors it's pretty hard to find out difference due to big JSON. For example: migrations failed test output:

It's not easy to find where is an error. So I propose to use https://pkg.go.dev/github.com/nsf/jsondiff or similar tool to simplify test writing job.
Will be glad to hear your thoughts.

Thanks for the suggestion but I don't think the extra dependency is worth the effort.
We can eventually integrate a more sophisticated testing and assert framework in the future, but for now the std go test utils and output are good enough.


Keyboard input

In the latest update, keyboard input is disabled.  If it is not difficult to roll back these changes and turn on the keyboard control. Thanks

Since GameMaker seemingly does not provide any way for me to check if a keyboard is connected, this would be difficult to undo properly. The port doesn't check for keyboard input because from my testing it was actually a bit taxing to do. Not only that, but the keyboard remapping section of the port has been removed ever since SR 2 I believe, and I'd want to bring it back if I'm adding support for keyboard. It would also require reworking how I assign controllers to players in swap mode.

In SR 5 the keyboard works fine, it worked in older ones too. It does not work only in SR 6

I know. The issue is that it would be difficult to reincorporate keyboard input into Pizza Tower's input system without the previously mentioned performance penalty.


Is it possible to add an instruction to a UIBarButtonItem?

UIBarButtonItem doesn't inherit from UIView, so was wondering if it is possible to set a coach marker originating from a UIBarButtonItem in the navigation bar? Thanks.

Ok, I see from another example, that you can get the UIView from code like
leftBarButton.valueForKey("view") as! UIView
Thanks.

This may work, but it uses an undocumented property and Is thus risky. Would be better to have direct support for bar button items.

@phatmann: I don't know of any other way to get the frame of an UIBarButtonItem, thus, if Instructions bundled a helper providing the feature, it would use the KVC method internally. As you perfectly stated, it's risky, that's why I prefer letting my fellow developer explicitly request the view. :wink:

I find a tricky way to do this and I'm currently using it in my app :
1- get status bar height:
var statusBarHeight: CGFloat = 0             if #available(iOS 13.0, *) {                 statusBarHeight = UIApplication.shared.keyWindow?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0             } else {                 statusBarHeight = UIApplication.shared.statusBarFrame.height             }
2- make a custom uiview to simulate uibarbuttonitem size:
let barItemView = UIView()             barItemView.frame = CGRect(x: 5, y: statusBarHeight, width: 50, height: 50)             self.view.addSubview(barItemView)
3- using from this view as requested uiview in func:
return coachMarksController.helper.makeCoachMark(for: barItemView)


Config file format

The INI file doesn't match any convention I recognise and is quite hard to read. There are better config handlers that do the parsing and loading for free. Here is an example TOML config file that I would be happy to do the work converting to, but I wanted to run the ideology by you first.
title = "VMAT TBI configuration file"
EAS = 2021-06-11 #date only
Site = "Saskatoon Cancer Center"
Organization = "Saskatchewan Cancer Agency"
#Paths are single quote'
Document_Path = '\\enterprise.stanfordmed.org\depts\RadiationTherapy\Public\Users\ESimiele\Research\VMAT_TBI\documentation\'
Linacs = ["LA16", "LA17"]
Energies = ["06X", "10X"]

[Plug-in]
    flash.default_flash_type = "Global"
    flash.default_flash_margin = 0.5
    flash.default_target_margin = 0.3
    calc.calculation_model = "AAA_15605"
    calc.optimization_model = "PO_15605"
    default_isos = 5
    #Default beams per iso from sup to inf, must have same or more entries then default isos
    default_beams_per_iso = [4, 3, 2, 2, 2, 0, 0]
    contour.field_overlap = true
    contour.field_overlap_margin = 1.0

Default_Sparing_Structures = [
    ["Lungs", "Mean Dose < Rx Dose", 0.3] ,
    ["Kidneys", "Mean Dose < Rx Dose", 0.0],
    ["Bowel", "Dmax ~ RX Dose", 0]
    #format ["name", "type", margin]
]

[Cases]
[Cases.Scleroderma]
    dose_per_fraction = 200
    number_of_fractions = 4
    constraints = [ #format ["Name", "type", dose, volume, priority]
        ["TS_PTV_VMAT", "Lower", 800.0, 100.0, 100]
        #continued in same format
    ]

[Cases.Myeloablative]
    dose_per_fraction = 200
    number_of_fractions = 6
    constraints = [[]]

[Cases.Non_Myeloablative]
    dose_per_fraction = 200
    number_of_fractions = 6
    constraints = [[]]
    sparing_structures = [
        [ "Ovaries","Mean Dose < Rx Dose",1.5 ]
    ]

Haha I made up the convention since I didn't know about TOML or the like. The only one I know of is XML, which I didn't want to spend the time implementing a XML parser in my last week of residency (I know now that it would be pretty simple to do, but I've been too lazy to change it haha).
I'm definitely on board with updating it as the config formatting gets messy and it's tough to keep adjusting the config parser every time I want to change something. If you could update it to TOML (since you are much more familiar with it) and open a PR, I would be totally open to implementing it. Let me know if you need me to do anything on my end.


Equal ranking

Give the same ranking to people who have the same number of points.

Nice proposal.
I think it will be fairer


Add API Scope

Is your feature request related to a problem? Please describe.
We currently route public requests via an /api path anyway. It seems consistent with our practises to move public-facing controllers and policies to their own modularised namespace... More consistent, right?
Describe the solution you'd like
An Api:: namespace containing public controllers, policies and views.

Note, this should also mean the deletion of resource controllers, policies and views in the root namespace.
Ignore that they could be used for inheritance for now. It will be significantly clearer, I think, if each space has its own views/policies.
Besides, if this goes the way of separation into three distinct engines, the scopes will need to be distinct anyway.


Clear duplicateIDs at the beginning of Filter.

This PR fixes problem with duplicate blocks field not being cleared at the beginning of Filter.
If not cleared, such blocks are then reused between runs. Once deleted due to deletion delay, deletion markers are recreated, and on next meta sync, they are deleted again (as partial blocks).

[x] I added CHANGELOG entry for this change.
[ ] Change is not relevant to the end user.

Verification
Added unit test.
Closes issue #2459.
To be merged into release-0.12 as suggested by @bwplotka

Thanks for review Bartek, I've addressed your feedback.