Unexpected results when declaring a test that has cycles

TestNG Version
6.14.0
Expected behavior
The test case I provided has a cycle in the test dependency. testD->testC->testB->testA, but testA is also marked priority=1 which would require it to run after all the other tests which are priority=0.
In this case, I would expect that testNG would provide an error or warning that a dependency cycle exists. Under these circumstances, I would not expect any tests to run. If any tests are run, I would expect the @afterClass method to run as well.
Actual behavior
Only testA runs.  Note also the @afterClass method does not run at the conclusion of the test. There is no indication that there is a problem in the test's configuration. Note also that if you comment out testD, all the tests and the afterClass method run as expected.
Is the issue reproducible on runner?

[ ] Shell
[ ] Maven
[ ] Gradle
[ ] Ant
[ X] Eclipse
[ ] IntelliJ
[ ] NetBeans

Test case sample

package com.seastreet.testng;

import org.testng.annotations.Test;
import org.testng.annotations.AfterClass;

public class CycleTest {
  @AfterClass
  public void afterClass() {
	  System.out.println("afterClass()");
  }

  @Test(groups={"A"}, priority=1)
  public void testA() {
	  System.out.println("testA()");
  }

  @Test(groups={"B"}, dependsOnGroups={"A"})
  public void testB() {
	  System.out.println("testB()");
  }

  @Test(groups={"C"}, dependsOnGroups={"B"})
  public void testC() {
	  System.out.println("testC()");
  }

  @Test(groups={"D"}, dependsOnGroups={"C"})
  public void testD() {
	  System.out.println("testD()");
  }
}

I was able to reproduce this in TestNG 6.14.3. But I am not able to reproduce this using the latest SNAPSHOT version of TestNG viz., 7.0.0-SNAPSHOT. So I think it got fixed as a side effect of some other fix. Now all the methods would be executed because when running the class directly and no filtering is specified (ie., filter by groups etc.,) all methods are expected to run.
PS: The output now would be as below :
testA()
testB()
testC()
testD()
afterClass()

===============================================
Default Suite
Total tests run: 4, Failures: 0, Skips: 0
===============================================

when executed from the IDE (i.e., there's no suite xml involved)


[Feature Request] New system-wide events "OnBeforeAssistEdit" and "OnAfterAssistEdit"

Unfortunately, there are always cases in the standard system where you have to intervene in the AssistEdit. This can be done both before and after. Therefore, it would be good if there were the same events that existed during validation.
Perhaps the names "OnBeforeAssistEdit" and "OnAfterAssistEdit" would make sense.

As Esben writes, then then the current trigger OnAssistEdit does not lend itself well to extending. Relying on subscribers to adhere to the Handled pattern is somewhat fragile - and it does not really allow 'extending' the functionality and leads to the problem you mention about 'who' is winning.
We have put it on our backlog for future functionality, but we currently do not know when we will get to this one

Is there a plan when this will be done? We have a lot of cases where we can´t get all of out code out of Pages because we miss an AssistEdit event. Would it be a solution if we request those as normal Event Requests? In that case we would get our code out of the pages and you can work on a solution?
Thanks in advance

Hi! Thank you for your suggestion. We are working on focusing the activity in this repository on addressing issues related to the AL development tools. as mentioned in the discussions above, this issue appears to require additional grooming of the expected behavior and would require changes across multiple areas of our product (compiler, runtime, etc.). We recommend that you post this on our Ideas forum at aka.ms/BCIdeas, or vote up the idea if its already there. We are constantly monitoring top ideas and will consider them for a future release.


Update capacity_planning.md

over 333 ccrs/min was unnecessary and this seems to have been missed we have a product to cope with this.
it is been adjusted to advise on chef-backend product
Signed-off-by: James McCormick<EMAIL_ADDRESS>Description
[Please describe what this change achieves]
Issues Resolved
[List any existing issues this PR resolves, or any Discourse or
StackOverflow discussions that are relevant]
Check List

[ ] New functionality includes tests
[ ] All buildkite tests pass
[ ] Full omnibus build and tests in buildkite pass
[ ] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/main/CONTRIBUTING.md#developer-certification-of-origin-dco
[ ] PR title is a worthy inclusion in the CHANGELOG

Isn't chef backend deprecated?

Isn't chef backend deprecated?

https://docs.chef.io/versions/#deprecated-products-and-versions
yes -  it is -  but its still supported with no EOL date, its also less dangerous than the current non-supported suggestion that seems to have lived in this DOC for the last 3 years +
once Automate HA is 100% live this would replace this.


Create Component: Modal

from PR:
Created a custom Modal Hook (called useModal)
Created a ModalContext that will allow any component to use the useModal hook
Created a Board form for creating new boards on the board grid


Print username on log

Overview
Append ssh username in front of sshr's log for helps to discover which user has connected.
Diff

As-Is

sshr-ssh-proxy-1      | time="2023-03-20T09:50:44Z" level=info msg="SSH Client connected. ClientIP=<IP_ADDRESS>:57990"
sshr-ssh-proxy-1      | time="2023-03-20T09:50:44Z" level=info msg="Establish a proxy connection between <IP_ADDRESS>:57990 and host-tsurubee"
sshr-ssh-proxy-1      | time="2023-03-20T09:50:44Z" level=info msg="Connection from <IP_ADDRESS>:57990 closed. EOF"

To-Be

sshr-ssh-proxy-1      | time="2023-03-20T09:47:33Z" level=info msg="SSH Client connected. ClientIP=<IP_ADDRESS>:60934"
sshr-ssh-proxy-1      | time="2023-03-20T09:47:33Z" level=info msg="[user:tsurubee] Establish a proxy connection between <IP_ADDRESS>:60934 and host-tsurubee"
sshr-ssh-proxy-1      | time="2023-03-20T09:47:33Z" level=info msg="[user:tsurubee] Connection from <IP_ADDRESS>:60934 closed."

Others
Fix some codes for matching golang version 1.20.

change os signal channel to buffer channel
io/ioutil is deprecated after Go 1.16
go get is not install binary anymore

Thanks!


Add control-label class to formgroups to automagically support validatio...

Adds the BS3 "control-label" class to all generated formgroup labels which makes the label respect the validation state of the formgroup (http://getbootstrap.com/css/#forms-control-validation). Should be non-obtrusive.
Now needs:
echo $this->Form->input('url', [
    'label' => ['class' => 'control-label']
]);

After PR:
echo $this->Form->input('url');

You need to update the tests too.

All tests now pass except for the assert on line 404. Some assistance would be appreciated.
The problem seems to be caused by the code somehow producing two separate class attributes for the label:

    Title

         <input type="text" name="title" required="required" id="title" class="form-control">

@bravo-kernel thanks man for the effort. I have looked into the changes and read back the documentation for Bootstrap. I noticed two major issues with your implementation that forced me to re-write my own and push it:

Labels for inputs of type checkbox or radio do not use the control-label class
Horizontal forms (in your failing test) need 2 classes by default (col-md-:n and control-label)

In any case, the bug you have raised is now fixed. Thanks for not just pointing it out but also trying to fix it :+1:

Thanks for solving this the proper way @jadb, good job :+1:


✨ Initialize JoinConfiguration if missing

What this PR does / why we need it:

If join configuration is missing, we are going to generate a default one.

Which issue(s) this PR fixes:
Fixes #213

@fabriziopandini  In our use cases, we use a template to generate bootstrap configs for all control plane machines. Hence, these configs all contains initconfiguration, clusterconfiguration and joinconfiguration. If adding the requirements in your PR, it will make the work of setting kubeadmconfig objects more manual.

@accepting here a thread explaining why it was decided to make this change

I'm really torn on this PR
I'm leaning towards not being restrictive to allow more use cases, but I'm concerned about how people are using this. I don't think I have enough information about what is more common, using duplicated configs across all machines or being specific about which machine will be the initial control plane and which will be a secondary control plane. I'll talk to some people this week and see if I can get some consensus on this.
Any additional thoughts are welcome.
Please see the associated issue for more details. The TL;DR is: Should we allow users to supply all configs to every machine and let the controller figure it out? or should we be prescriptive to prevent accidental user errors and nice error messages.

/hold

For this PR can we have just the initializing a join configuration if one doesn't exist and leave the other checks out for now? That way our behavior doesn't change and we can close #213.

/retitle ✨ Initialize config objects if missing

@chuckha
Reduced the scope to

If join configuration is missing, we are going to generate a default one.

/hold cancel
looks good to me. assigning to @detiber in case I've misunderstood his comment
/assign @detiber

/lgtm


Client retries indefinitely if server resolver throws an error

Hi,
Using socket-apollo-link with an Apollo client, if the Absinthe GraphQL resolver on our server throws an error, our client and server seem to get stuck in a cycle where the client action is not aborted but keeps retrying and failing. The raw websocket cycle looks something like:
client: send action
server: ["9","9","__absinthe__:control","phx_error",{}]
client: ["21","21","__absinthe__:control","phx_join",{}]
server: ["21","21","__absinthe__:control","phx_reply",{"response":{},"status":"ok"}]
client: resubscribe to subscriptions
back to top...

How would you recommend handling this on the client? Ideally, the client should have a way to associate a server crash with a permanent error. Is there an exposed method we can use to abort the action (aside from disconnecting the socket)?

@alhambra1 if it's still actual, there is how I handle this issue:
interface IUsePhxErrorHandler {
  socket?: PhoenixSocket;
  absintheSocket?: AbsintheSocket;
  skip?: boolean;
}
export const usePhxErrorHandler = ({ socket, absintheSocket, skip }: IUsePhxErrorHandler) => {
  useEffect(() => {
    if (!skip && socket && absintheSocket) {
      socket.onMessage(({ event, topic }) => {
        if (event === "phx_error" && topic === "__absinthe__:control") {
          absintheSocket.notifiers = absintheSocket.notifiers.reduce<Notifier[]>((notifiers, notifier) => {
            if (notifier.operationType === "subscription") {
              notifiers.push(notifier);
            } else {
              cancelNotifier(absintheSocket, notifier);
            }
            return notifiers;
          }, []);

          // Then you could notify user about error, send error to Sentry, etc.
        }
      });
    }
  }, [socket, absintheSocket, skip]);
};


[WIP] Vietnamese

I needed to try my hand at localization to make sure the workflow works. So here’s a Vietnamese localization. Before this PR can land, I need to double-check the test fixtures to make sure everything makes sense. I may need to add a bunch more overrides, because modifier only gets prepended with “bên” or “sang” for “left” and “right”, not “straight” and “U-turn”.
/cc @freenerd

This was included in https://github.com/Project-OSRM/osrm-text-instructions/pull/89


cargo add package@version shows features from oldest instead of current version

Problem
When adding cargo add with an explicit minimal version, cargo add will show features from the specific version, while actually adding the latest semver-compatible version. This seems misleading and/or confusing.
Steps

cargo add<EMAIL_ADDRESS>
Actual result:
djc-2021 main test-rs $ cargo add<EMAIL_ADDRESS>    Updating crates.io index
      Adding chrono v0.4 to dependencies.
             Features:
             - rustc-serialize
             - serde

Expected result:
    Updating crates.io index
      Adding chrono v0.4.22 to dependencies.
             Features:
             + clock
             + iana-time-zone
             + js-sys
             + oldtime
             + std
             + time
             + wasm-bindgen
             + wasmbind
             + winapi
             - __doctest
             - __internal_bench
             - alloc
             - criterion
             - libc
             - pure-rust-locales
             - rkyv
             - rustc-serialize
             - serde
             - unstable-locales

This is the output from cargo add<EMAIL_ADDRESS>which is the version that add<EMAIL_ADDRESS>actually pulls in at this time.
Possible Solution(s)
Bump the version to the latest semver-compatible one before extracting features, instead of after.
Version
cargo 1.65.0-nightly (4ed54cecc 2022-08-27)
release: 1.65.0-nightly
commit-hash: 4ed54cecce3ce9ab6ff058781f4c8a500ee6b8b5
commit-date: 2022-08-27
host: aarch64-apple-darwin
libgit2: 1.5.0 (sys:0.15.0 vendored)
libcurl: 7.79.1 (sys:0.4.55+curl-7.83.1 system ssl:(SecureTransport) LibreSSL/3.3.6)
os: Mac OS 12.5.1 [64-bit]

Any suggestions for how to make this obvious?  My main concern is  how well it "fits" without adding extra noise.

Maybe a suffix like (in 0.4.22 -- not available in base requirement 0.4) only on those lines where it applies? This limit the noise for most crates that have a stable set of features and clearly repeats the features.
I guess a challenge is that a feature could be disabled by default in 0.4 and enabled in 0.4.22 (the other way around could happen too but probably not so likely?), so that the +/- value should be different across versions.

Well, it would just show the two features, right? Maybe it could at least also have a line saying "(17 more features available in current version 0.4.22)"?


As a student living in dorm, I can edit a contact's room number

... so that I can change the name if it was initially created incorrectly or the name has been changed.

Completed.


Migrate to community ViewPagerAndroid

This is a followup to the RN v0.59 upgrade #3399. It will be required for an RN v0.61 upgrade when that's out, but isn't required for v0.60.
When launching the app with the debugger, the following message now goes to the console:

Warning: ViewPagerAndroid has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/viewpager' instead of 'react-native'. See https://github.com/react-native-community/react-native-viewpager

In v0.60, the core module is still there; but it's gone in master since facebook/react-native@f8a400a53fd7f336da3809ab87d88be0cd55b1af, which will presumably be in v0.61.
The README doesn't say much about upgrading; hopefully it's smoothly compatible.
At a quick grep, we don't refer to this module ourselves:
$ rg ViewPagerAndroid
$

But it's used in react-native-tab-view:
$ rg ViewPagerAndroid node_modules/
...

Which in turn is pulled in by react-navigation, and I'm guessing is used for the tab navigators.
So most likely what this will come down to is upgrading react-navigation, aka #3573. We're still on a ^1 version; we have partial work in #2702 and #3502 to move to ^2 and then ^3, which is the latest.

We're now on react-navigation v2 (see #3573), so I looked back at this.
I no longer see the warning!
But I'm a bit puzzled... because when I go back to before the react-navigation upgrade, I no longer see it either. Ditto if I go back to 26.1.124... or even 26.0.123, right after the RN v0.59 upgrade. So I'm not sure what was different when I saw this before.
In any case, the newer react-native-tab-view that react-navigation v2 pulls in, namely 1.4.1, still refers to ViewPagerAndroid in its source. So I'll leave this open, and blocked on an upgrade to v3 (tracked in #3573).


[Question]

Question
I was unable to build the wrapper:
[root@optiplex keepassxc-p11-wrapper]# go build ./cmd/keepassxc-p11-wrapper
go: downloading github.com/sirupsen/logrus v1.9.0
go: downloading pault.ag/go/pkcs7 v0.0.0-20220605185533-916a162b6ad9
go: downloading github.com/gopasspw/pinentry v0.0.2
go: downloading github.com/miekg/pkcs11 v1.1.1
go: downloading golang.org/x/sys v0.7.0
internal/keepassxc/keydata.go:13:2: unrecognized import path "pault.ag/go/pkcs7": https fetch: Get "https://pault.ag/go/pkcs7?go-get=1": tls: failed to verify certificate: x509: certificate signed by unknown authority
[root@optiplex keepassxc-p11-wrapper]#
How do I fix that ?

Ok,  but just so you know I'm using Fedora 38, it's not like I'm using one unknown linux distribution that only 10 other people are using in the entire world.
Can I manually download the stuff and avoid go fetching it ? If so where do I put it ?


Fig bug in auto computation of zoom levels

For maps with large aspect ratio, contextily downloads tiles as if the map was as small as the smallest dimension. It should base the zoom level on the dimension that's a larger extent.
I discovered this bug when my server died attempting to render the following blue line on a map:
https://sondemaps.lectrobox.com/seattle/2023/4/13-17-47.64048--123.95468.jpg
This script has run fine for months, but in today's dataset the blue line coincidentally was almost perfectly horizontal. Therefore, the latitude extent of the map was very small, and because contextily uses the max of the two zoom levels, it attempted to download over a million zoomlevel 19 tiles from OSM.

Yay. Thanks for the fix!
Can you also update the test that are failing because of the change?

Oops - sorry about that; fixed.


need a guideline or example

Hi,
Couldn't find any working example of how to use your lib. any chance to get a quick and dirty example of how to authenticate with telegram and get user profile/send message/ etc .... ?
One suggestion, if you don't want to write example how about some unit tests for telegram functionalities?

@vahidhashemi take a look at https://github.com/rubenlagus/Deepthought
however it didn't help me much! I really need a documented example too :(

I'll update Deepthought project to this api as soon as I get some time, please be patient

It has been done

@rubenlagus wow!! thanks a lot! you're so cool. can you just do me 1 more favor, too? talk to me on telegram! I can't PM you, so I asked my friend to give you my ID. I promise not to diturb you. may you please?

@pazis Sorry, my Telegram is already messy enough, any bug/issue in this project can be discussed here better.

Well, where do we have to enter the code Telegram sends us?
After running DeepThought.java I get this in output:
SEVERE: KERNELCOMM
java.util.concurrent.TimeoutException
at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1771)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915)
at org.telegram.api.engine.TelegramApi.doRpcCall(TelegramApi.java:351)
at org.telegram.api.engine.TelegramApi.doRpcCall(TelegramApi.java:326)
at org.telegram.api.engine.TelegramApi.doRpcCall(TelegramApi.java:439)
at org.telegram.api.engine.TelegramApi.doRpcCall(TelegramApi.java:426)
at org.telegram.bot.kernel.KernelComm.lambda$doRpcCallSync$0(KernelComm.java:172)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Oct 17, 2016 12:09:39 AM org.telegram.bot.services.BotLogger severe
SEVERE: [KERNELHANDLER] Error getting updates state
Actually I get telegram login code in my phone, but I cant enter it in the console like the previous version. And it keeps sending the code.

and one more thing... I run it on Windows, so I don't have \dev\urandom file. in the logs I found the FileNotFoundException for this. does it really matter?

oh sorry! I just typed the code in console and it worked! Issue closed!


Some suggestions for the web editor

Hi, I am a recent user of LuckPerms, so I'm sorry if any of these are not appropriate or already implemented and I just don't know how to enable/use them. But here are some things that seem like it would make it easier/safer for me as a server owner to use based on first impressions:

Make the name of the last person to make the changes using the editor known (right now I'm the only person who can do this as only the owner has this permission, but I had a brief griefing incident in which someone gained access to the console and I was able to see who/what they did using the logs but something simple when typing /lp editor, like last updated by so and so at date/time would be nice).
Make a copy of the old file for backup purposes in the directory of the plugin when any changes are implemented using the online editor link. Maybe keep up to 2-3 prior versions then re-write them. This is in case something went badly wrong and it is easier to restore than make new changes.
Move the trash can on the editor to the other side, or the left of the name of the permission (or make the line your mouse is over highlight with a certain color). More than once I deleted the wrong perm because the trash can is so far to the right it's hard to see if I'm on the same line.
Make an "undo" button or at least a way to see which perm was last deleted so that if it was deleted accidentally it can be added back.
Make a search bar where it's possible to see if a permission is anywhere in the file.
Make an easier way to identify redundant perms that are already in inherited groups. For example, if rank advocate inherits everything from rank ally, and rank ally already has essentials.warp, then if advocate has essentials.warp too, make the text or highlight the row a different color. This way it's easier to know it's safe to remove.
Mark perms that do not belong to any plugin currently in the plugin directory a different color text or highlight the row a different color. I migrated my old pex file to LuckPerms and there were a lot of plugins I didn't install on my new server. Consider making a button that will automatically purge any perms that don't belong to a plugin that's currently active, or at least grab them all and put them on a new page for review. Once sure they shouldn't be kept (not planning on installing that plugin soon), then confirm a "delete all." If any should be kept, make it possible to remove the perm from this page before clicking on "delete all."
That's all I can think of right now. Thank you for this plugin, it's wonderful overall.
Emp

I would like to second the following improvement:
"Make a search bar where it's possible to see if a permission is anywhere in the file."
Currently the web editor search function only search Tracks, not Groups or Users. Searching Groups for perms or Users for players would be very helpful.


Quick letter search doesn't work in Codes and Patches tabs

Describe the bug
As of Dev-1.1.0, using the keyboard to find codes or patches whose titles start with a specific letter doesn't work properly.
To Reproduce
Steps to reproduce the behavior:

Highlight the Codes or Patches list.
Press any key.

Expected behavior
The list should scroll to and highlight the code/patch whose title starts with the letter matching the pressed key.

I only implemented quick letter search for mods, I don't plan to implement it for the rest, we have a functional search feature for mods and codes using CTRL + F, it's more than enough.


The error message of OpTestHost.host_list_gard_records might be incorrect.  'clear' should be 'list'?

def host_list_gard_records(self, i_gard_dir):
    try:
        return self.ssh.run_command(BMC_CONST.SUDO_COMMAND + i_gard_dir + BMC_CONST.LIST_GARD_CMD, timeout=60)
    except:
        l_errmsg = "Can't clear gard records"
        print l_errmsg
        raise OpTestError(l_errmsg)

@ping678 Yes, that should be list not clear. Are you able to create a patch and send a PR?

I resent a PR #259 .

Thanks for re-sending it. Merged.


"Open with Code" context menu option opens two instances if you don't have any workspace created or didn't have one opened in previous session

VSCode Version: 1.33.1
OS Version: Windows 10 Version 1809

Steps to Reproduce:

Fresh install VS Code
Right click on a folder or on the background of Windows explorer and select "Open with Code"

Or,

Remove any existing workspace from the VS Code explorer (so that the explorer is empty)
Close VS Code
Right click on a folder or on the background of Windows explorer and select "Open with Code"

Or,

Open a folder (not a workspace) in the VS Code explorer
Close VS Code
Right click on a folder or on the background of Windows explorer and select "Open with Code"

As I tried to test, I found some other scenarios too when this happens. I could not pin-point them all, but every time it is related to not having any workspace created or not having any workspace (not folder) opened in previous session. I hope this helps.

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

@atiyar can you try if this also happens if you just do "code " from the command line?

@bpasero sure :)
command: MY\PROJECTS\ARE\HERE>code
result: opens a single instance
command: MY\PROJECTS\ARE\HERE>code my-project-folder
result: opens two instances
command: MY\PROJECTS\ARE\HERE\my-project-folder>code .
result: opens two instances
If you had opened a workspace in your previous session, then the second and third cases open a single instance.

@atiyar any chance you can demo this to me with screenshots or screen recording?

@bpasero could you be a bit more specific about what exactly you want me to do?

@atiyar I am curious to see what the second instance is that open. I assume the first one is the folder, but curious about the second one. A screen shot would help maybe.

The second instance is a VS Code instance in a state you closed it after your previous session, unless you closed it with a workspace opened in it, in which case the second instance doesn't show up. Below are the steps to reproduce the issue along with the screenshots -
Commands used in the tests-

Test#1:

This is VS Code empty -

Close VS Code
Enter one of the commands
Result -

Test#2:

Add a folder in VS Code explorer using the "Add Folder" button -

Close VS Code
Enter one of the commands
Result -

Test#3:

Add a folder in VS Code explorer using the "Add Folder" button and save it as a workspace -

Close VS Code
Enter one of the commands
Result -

@bpasero found another scenario when you don't have two instances -

Open a folder with the "File->Open Folder" menu option (it'll ask you "Do you want to save your workspace configuration as a file?" Click "Don't Save", because we don't want a workspace, we want just a folder) -

Close VS Code
Try the "code" or "code ." command (or use the "Open with Code" context menu option) to open a new folder -

Result: a single instance with the intended folder -

With the this scenario in mind, I think the following observations might help you narrow down the source of the overall issue -

When you open a folder clicking the "Add Folder" button, the folder is opened in the explorer under "UNTITLED (WORKSPACE)"

When you open a folder with the "File->Open Folder" menu option, the folder is opened in the explorer as if it were a workspace (folder name capitalized as workspace name) -

After opening a folder with the "File->Open Folder" menu option -
i) add another folder in the explorer ("File->Add Folder to Workspace..." or context menu from right click in the explorer
ii) now you are in the "UNTITLED (WORKSPACE)" scenario with two folders opened under it -

iii) close VS Code
iv) try the "code" or "code ." command (or use the "Open with Code" context menu option) to open a new folder
v) Result: two instances -

Disclaimer: I always use the "Add Folder" button in VS Code explorer to open a folder (because I'm lazy enough not to go through the File menu and also I'm bad with keyboard shortcuts, or because it's a wide, big beautiful button just sitting there waiting to be clicked). I don't know while opening a new folder if the difference between using the "Add Folder" button and the "File->Open Folder" menu option is intentional, but I must say its very much confusing.

@atiyar ok so this is about restoring an extra window with "Untitled Workspace" and so you end up with two windows, right? This is intentional behaviour:

use VSCode and end up with an untitled window
close the application
start it again on a folder
it should open 2 instances, one for the folder and one for the untitled workspace

The reason we restore untitled workspaces is because you as a user did not yet make a choice of discarding this workspace or not.
Does that make sense?

@bpasero does it? Wouldn't it make more sense if it asks me if I want to save my Untitled Workspace when I attempt to close VS Code?
If I said "No" to whether I want to save my Untitled Workspace, the next time when I'm trying to -

open a folder in VS Code, there's no need to restore my previous work because I already made a choice about it
open VS Code only, not any folder with it, its always nice to have my previously opened folder(s) under that Untitled Workspace

Most of the times I open VS Code, I don't need a Workspace saved for my work, and create hundreds of .code-workspace files.

@atiyar we discussed this back when we designed this experience and we felt that asking to save the workspace each time you quit the application would be odd. Imagine you simply want to have multiple folders quickly appear in your window and you quit and start again many times, we would end up asking each time you just quit the application. We felt this would make the experience too heavy weight.

@bpasero OK, I think I'm starting to get the picture.
So, I'm considering this a "by design".

You can always save a workspace to disk and then you will not see this second instance opening.

@bpasero I'm really sorry, but I think we still have an issue to talk about -

Start VS Code without opening any folder or workspace. At this point you don't have anything opened in the explorer

try the "code" or "code ." command (or use the "Open with Code" context menu option) to open a new folder
Result: two instances - one with the intended folder and another is an empty instance

In this case there was no previously left Untitled Workspace to restore. Please take a look at the screenshots.

@atiyar this is configurable, can you check the window.openFoldersInNewWindow setting?

@bpasero the setting "window.openFoldersInNewWindow": "off" seems to work if you already have VS Code open.
If you don't have VS Code already open and try the "code" or "code ." command (or use the "Open with Code" context menu option) to open a new folder, the result is two instances as the above screenshot shows.

@atiyar yeah you are doing this right:

That will indeed turn your workspace into an untitled workspace, which is possibly up for debate. The better way to get into an empty state is to  pick File > Close Folder, and then you are all set.

@bpasero I really didn't expect to consider the empty explorer an Untitled Workspace. But, I get it now. Thanks a lot for your time.  :-)


Decompose lerna.yml workflow to allow more parallelization in presubmit checks

Uses the matrix feature to break our 3 existing presubmit checks into 7 smaller parallel checks

Got the average test runtime down to 5-6 minutes instead of 15-20


Should WithHost be added?

We're building tests for requests that perform differently based on the Host.
We were able to get the behavior we want with httpexpect via:
WithHeader("Host", "example.com")
I wanted to raise that maybe a WithHost option should be added.
I believe this would be more consistent with Go's Request struct, which (if I understand correctly) chooses the Host header based on either (1) the Host field, (2) the Host header, or (3) URL.Host.
    // For client requests, Host optionally overrides the Host
    // header to send. If empty, the Request.Write method uses
    // the value of URL.Host. Host may contain an international
    // domain name.
    Host string

https://godoc.org/net/http#Request

I think the latest call should override previous. For example:
WithHeader("Host": "server1")
WithHost("server2")

'server2' should prevail
WithHost("server2")
WithHeader("Host": "server5")

'server5' should prevail

Hello. I was thinking about picking this up if I understood the goal. We want to be able to do:
req.WithHost("somehost.com")

And have it set the Host header on the request.
Is that correct?

Merged!


Do not claim to follow SemVer

Capistrano introduces breaking changes in minor versions. SemVer requires an update of the major version for such changes. Hence, Capistrano should not claim to follow SemVer.

Thanks for the PR. Agreed that we do not strictly follow SemVer. But we do care about our users and pay close attention to versioning! I'd rather replace the SemVer sentence with a better explanation of our version policy.
I think we are in pretty close alignment with what Rails uses. They say:
Rails follows a shifted version of [semver](http://semver.org/):

**Patch `Z`**

Only bug fixes, no API changes, no new features.
Except as necessary for security fixes.

**Minor `Y`**

New features, may contain API changes (Serve as major versions of Semver).
Breaking changes are paired with deprecation notices in the previous minor
or major release.

**Major `X`**

New features, will likely contain API changes. The difference between Rails'
minor and major releases is the magnitude of breaking changes, and usually
reserved for special occasions.

Would you agree this is accurate?

Would you agree this is accurate for Capistrano?

Yes, that seems about right.

Closing in favor of #1894.


Removal of Schedule and ScheduleEvent

#1144
Signed-off-by: Trevor Conn<EMAIL_ADDRESS>

@jduranf Thanks for comments. I think I addressed the items you pointed out. As for documentation, yes that will be handled via separate PRs. @mhall119 Has created an issue https://github.com/edgexfoundry/edgex-go/issues/1158


docs: subscription

Description
Resolves #442

Adding subscription doc

[x] Adding new page
[ ] Updating existing documentation
[ ] Other updates

📝 Changed routes:

/docs/subscription.en-US
/docs/subscription.es-ES

(view full size)
(view full size)

/docs/subscription.ja
/docs/subscription.ko

(view full size)
(view full size)

/docs/subscription.pt-BR
/docs/subscription.ru

(view full size)
(view full size)

And 1 other route:

/docs/subscription.zh-CN

Commit 46d5e1ab33ae478868c67be75d9ee12b7ab92354 (https://swr-site-moh9djn7b.vercel.sh).


Team deep dive: testing priorities and specs

Notes here: https://docs.google.com/document/d/1g1L5I_6sNwjLP5fjYigeyqrSXDvf4AW4w-VCE64XKIo/edit#bookmark=id.y33gwzmjo7j4
1) Validator: continue to retrieve couch data (Tim is currently working on this).
2) Mapper unit tests: we are seeing this as in scope and a priority for CIC/Tim. Tim will present a demo on his architecture and framework (scheduled: 9/25)
3) Integration tests: would be helpful to have some tests in place by CIC/Tim, to ensure that running a mapper doesn’t break when the process is launched/triggered (e.g., manual run) – e.g., if an endpoint reference/name changes (to prioritize as these come up)
4) Validator post-MVP features: We want to ensure the validator is able to compare production to “preview/test” data (for post-MVP Rikolti). Note that Solr and Couch are currently hard-coded into the validator comparison, but there is a place to request databases and data comparisons. Queue this up for Tim if CIC time remains; if not, Amy will pick this up post-MVP.


Kv certificates draft [DO NOT MERGE]

/azp run java - keyvault - ci

@g2vinay can this be closed now?

@g2vinay can this be closed now?

yes, closed it.


Switch to use Action Provider Tools Blueprint

:wave: Hi, Globus developer here!
We have some changes the team has been working on to improve Action Provider Tools, in particular to improve the ways in which it interacts with the Globus Auth and Groups services.
As a result, we're removing add_action_routes_to_blueprint in favor of only supporting the ActionProviderBlueprint path -- this gives all of us (library maintainers and users) a handle on some specific object or abstraction which the library is providing, and will allow us to expose the coming changes more cleanly.
The latest release (0.19.1) still provides add_action_routes_to_blueprint, but it will be removed in the next one (probably v0.20.0).
I'm suggesting this change to try to help you update, but I wasn't able to run the testsuite in this repo, as it appears to require credentials.
Please let me know if there's more we can do to assist!

'add_action_routes_to_blueprint' is being removed in an upcoming release. The activities which it performed are better encapsulated by 'ActionProviderBlueprint', which is available in all recent versions of Action Provider Tools.
The blueprint provides registration methods which can be used as decorators, but to preserve the semantics of the current application as much as possible, I have refrained from using them as such.
The registration calls are made imperatively in the app factory, similar to how the add_action_routes_to_blueprint function behaved.
The ActionProviderBlueprint looks up client credentials from app config based on the name of the blueprint, so the client credential names are set appropriately in app config to match.

I see that there's an error in CI after this merged. It looks like the client secret isn't being picked up correctly. I'm puzzled as to why that might be -- the code should be looking for DISAPORA_CLIENT_ID and DIASPORA_CLIENT_SECRET, based on the name of the blueprint being "diaspora".
Let me know if I can help dig into this. It's a little difficult for me to help out without being able to run tests on my changes. :sweat_smile:

Hi Stephen,
Thank you for the pull request and for bringing the AP update to our attention! I pushed the changes directly to the main branch without waiting for GitHub Actions to verify, as I assumed the workflow would execute there correctly.
As you mentioned, and as I can verify on my end, even though the PR successfully sets these variables:
app.config.DIASPORA_CLIENT_ID = CLIENT_ID
app.config.DIASPORA_CLIENT_SECRET = CLIENT_SECRET

Retrieving them using:
client_id = app.config.get(provider_prefix + "CLIENT_ID")
client_secret = app.config.get(provider_prefix + "CLIENT_SECRET")

inside _create_token_checker still returns None. This issue is causing both pytest and python action_provider/main.py to fail.
For reference, here is the current structure of my secrets.sh:
#!/bin/bash

export AWS_ACCESS_KEY_ID="*****"
export AWS_SECRET_ACCESS_KEY="*****"

# action provider
export CLIENT_ID="2b9d2f5c-fa32-45b5-875b-b24cd343b917"
export CLIENT_SECRET="*****"
export CLIENT_SCOPE="https://auth.globus.org/scopes/2b9d2f5c-fa32-45b5-875b-b24cd343b917/action_all"
export DEFAULT_SERVERS="b-1-public.diaspora.fy49oq.c9.kafka.us-east-1.amazonaws.com:9198,b-2-public.diaspora.fy49oq.c9.kafka.us-east-1.amazonaws.com:9198"

# web service
export SERVER_CLIENT_ID="2b9d2f5c-fa32-45b5-875b-b24cd343b917"
export SERVER_SECRET="*****"

Let me know if you have any insights or suggestions on resolving this issue!

The fix is surprisingly simple: https://github.com/haochenpan/diaspora-service/pull/43/files


make options a collapsible sidebar

References

n/a

Code changes

[x] adds more call graph options
[x] organize call graph options in a collapsible sidebar

User-facing changes

users should be able to more precisely view callgraphs

Backwards-incompatible changes

n/a


Bump patch version to 0.1.2

Coverage remained the same at 65.562% when pulling 5a35c948c9c37a0bd27e654637f8e6fa33def643 on ds-bump-version into 7353a6d1d473f0f5d1567174592a83f566ebac8d on master.


Fix wiring diagram

Problem
Current wiring diagram here https://github.com/TinyCamML/Boron-and-OpenMV/blob/main/Files/Circuit-Diagram.png incorrectly shows power from 5V battery attached to solar panel inputs to Boron and OpenMV.
Fix
Show single source branching off to Boron and OpenMV similar to the following screenshot:

Noticed this morning in Bentley's excellent honors thesis defense that the battery symbol is technically backwards. + connection should come from side with longer line and would be appropriate to show a ground net attached to shorter line side.


k8s: kontain RuntimeClass support for containerd

Add support for the kontain RuntimeClass to containerd.
Will need to write a containerd shim and config.
See https://github.com/containerd/containerd/tree/main/runtime/v2/example for containerd shim example.
See https://github.com/kata-containers/kata-containers/blob/main/tools/packaging/kata-deploy/scripts/kata-deploy.sh for installation script ideas.

The shim is done and in master


youtube-dl: 2021.02.22 -> 2021.03.02

https://github.com/ytdl-org/youtube-dl/releases/tag/2021.03.02

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 114812 at a6715a33 run on aarch64-linux 1

36 packages built:

catt
celluloid
curseradio
haskellPackages.cut-the-crap
jellyfin-mpv-shim
jftui
kodi-cli
lollypop
minitube
mkchromecast
mopidy-youtube
mpc-qt
mps-youtube
persepolis
plex-mpv-shim
python37Packages.mpv
python37Packages.pafy
python37Packages.tubeup
python37Packages.youtube-dl
python37Packages.youtube-dl-light
python38Packages.mpv
python38Packages.pafy
python38Packages.tubeup
youtube-dl (python38Packages.youtube-dl)
youtube-dl-light (python38Packages.youtube-dl-light)
python39Packages.mpv
python39Packages.pafy
python39Packages.tubeup
python39Packages.youtube-dl
python39Packages.youtube-dl-light
qimgv
somafm-cli
sublime-music
tartube
tuijam
ytcc

20.09: 90002f592068af7dac1b5018438d6c5d2a947d9a

Many thanks, @zowoq !


Answer handling improvements

Description
Fixes several issues with answer saving:

if there is a change when changing task, it should be saved (was not if we hadn't waiting the 60sec delay)
on submit, there should be a current answer save (was not if we hadn't waiting the 60sec delay)

Recommendation: test it on https://dev.algorea.org/branch/answer-handling-improvements/en/a/773396873861865944;p=4702,7528142386663912287,7523720120450464843;a=0
You can see if a change as been saved because 1) you see the call (PUT), 2) if you refresh the page, you see the change
Test cases

there is no save at task launch
if there is change immediately, it is saved by autosave
if there one failed auto save (every 60sec), a message is displayed, but it is  retried at the next interval
if there is no change, no autosave is done
submitting triggers a current state save
changing task triggers a (visible) current state save when the state has changed

if this save fails, the user can choose to retry
if this save fails, the user can choose to loose changes

changing task does not trigger a current state save when the state has not changed

even just after the app was launched (past bug: was saving just after app launch if even if no change)

on a task which cannot be loaded (e.g., https://dev.algorea.org/branch/answer-handling-improvements/en/a/1414822370876733593;p=4702,100575556387408660,1788359139685642917;pa=0), the next-prev navigation still work (may be blocked by unload protection if buggy)
if I change task while the autosave is request is running, the "current" answer must still have been saved somehow

When saving, and you click navigate to another item - it will save again as lot as you clicking
https://github.com/user-attachments/assets/9cd07cae-eebd-47a0-a03f-2f139cc55f66

When saving, and you click navigate to another item - it will save again as lot as you clicking
Screen.Recording.2024-11-06.at.5.14.19.PM.mov

I thought about it. It is not a big deal and it would be quite difficult to fix. So let's keep it as it is.


Not all tags are shown for a repo

Right click on existing app and select 'Deploy image to Container App'
Registry - 'ACR' - 'mikemortACR'
Repository - Choose one with multiple tags

Issue: Only most recent tag is shown - Should see 4 tags for this repo

Heeey @BigMorty!
Do you happen to know if the other tags have some invalid characters or some other pattern (maybe associated with a different repo or anything else) that could be causing this behavior?  I haven't run into this myself and have registries with multiple tags, so just wondering if you had any more insight.
Could you list the other tags for me?

Here is an example of what I see in the Docker explorer for the orderproc image in my ACR:

Here is what I see when I go to create a container app using orderproc:


[AzureCommunicationServices] Is Apple CallKit used by default?

I have an iOS App that use Azure Communication Services SDK to manage VOiP features.
Everything works fine but Apple rejects my App because it is not compliant to Chinese laws  due to the presence of CallKit.
This is their response:
_Guideline 5.0 - Legal
Recently, the Chinese Ministry of Industry and Information Technology (MIIT) requested that CallKit functionality be deactivated in all apps available on the China App Store.
During our review, we found that your app currently includes CallKit functionality and has China listed as an available territory in App Store Connect.
Next Steps
This app cannot be approved with CallKit functionality active in China. Please make the appropriate changes and resubmit this app for review.
If you have already ensured that CallKit functionality is not active in China, you may reply to this message in App Store Connect to confirm.
Voice over Internet Protocol (VoIP) call functionality continues to be allowed but can no longer take advantage of CallKit’s intuitive look and feel. CallKit can continue to be used in apps outside of China.
It is possibile to disable the use of CallKit?

@raosanat can you please respond to this?

Does it mean that the app or any SDK should not reference to the CallKit framework? Or that the app should not be using any CallKit functionalities?
You can always choose to create CallAgent without the CallKit functionality enabled in the SDK.

Yes, it seems that any reference to CallKit must be removed.
Here's their last rejection message:
However, to be in compliance with guideline 5.0, it would still be appropriate to ensure that CallKit functionality is not active in China.

We will look in to alternative solutions.

Thank you, I hope you can help.


feat: fetch machine specs from bacalhau

Summary
This PR updates a resource provider's resource offers based on the current compute nodes available to bacalhau.
It also introduces some additional MachineSpec properties (even though jobs / matching don't take advantage yet):

List of available GPUs per compute node (with vendor, name and vram).

Note: If the bacalhau orchestrator becomes unavailable, the resource provider will exit. (Would we rather just remove existing resource offers and give it a chance to come back online?)
Task/Issue reference
Closes: https://github.com/Lilypad-Tech/internal/issues/289

This was tested by @noryev on his RP (4070ti) as well


Math Equation Rendering

Right now the extension does not render LaTeX style math equations (as some md preview extensions do). Is there a plan to implement the feature?

Duplicate issue to #13


limit=0 throwing an exception error

I'm getting errors when I make a call with limit=0.
http://<IP_ADDRESS>:8000/apiLimit/employees/all?limit=0&offset=0
File "C:\Users\xxx\AppData\Local\pypoetry\Cache\virtualenvs\python-fastapi-pagination-fpfShGP7-py3.11\Lib\site-packages\pydantic\main.py", line 159, in __init__     __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) pydantic_core._pydantic_core.ValidationError: 1 validation error for LimitOffsetParams limit   Input should be greater than or equal to 1 [type=greater_than_equal, input_value=0, input_type=int]     For further information visit https://errors.pydantic.dev/2.1/v/greater_than_equal
I totally understand that calling limit=0 should not be valid, but is there any option to avoid throwing an exception error?
My sample code is the following
@app.get(path="/apiLimit/employees/all", name="Gets all employees", response_model=LimitOffsetPage[EmployeeOut]) async def get_all_employees(): conn = connect_to_db() results = conn.query(Employee).all() return paginate(results)

This also hit me up, should fastapi-pagination return like a fastapi.HTTPException instead of a validation error? So the error gets surfaced to the user's response, on my case, it's happening with something like:
client.get("/items?size=250")

Hi @f616 @josecsotomorales,
Thanks for reporting this issue, it's pydantic v2 integration issue.

Thanks for the quick turnaround @uriyyo, do we have an expected date for a release with this fix?

@josecsotomorales I will do it on a weekend

Nice! Happy to help in whatever's needed, just ping me

@josecsotomorales @f616 Fix was released under version 0.12.8

Thank you @uriyyo 🚀


How to use shorthand syntax outside of patternlab itself

We're building a WordPress starter theme which uses patternlab as a dependency in order for us to work using atomic design.
The idea is to re-use the templates created in patternlab in our theme. However, using the normal twig way of doing things doesn't work as it can't interpret the shorthand syntax (http://patternlab.io/docs/pattern-including.html).
Where is this set in the patternlab twig code? And how can we reuse it outside of patternlab?
Thanks!
PS The theme will be open source and we'd love to share it with the patternlab community!

Hey @adamf321,
Thanks for your interest in making a Wordpress theme that has Pattern Lab baked in. That sounds fantastic!

Where is this set in the patternlab twig code? And how can we reuse it outside of patternlab?

I'm not the best person to answer this as I'm a bit outside of the nitty gritty, but perhaps @EvanLovely could share how they did it for the Drupal edition?

Thanks @bradfrost!
I already discussed it with Dave Olsen in the Gitter room, I think it will all work nicely once we can order patterns without adding the numeration to the name (e.g. 01-my-organism). Until then we'll have to live with it being a bit more messy than I'd like.
Ref https://github.com/pattern-lab/patternlab-php-core/issues/48

Since it sounds like this one has a solution (albeit not great) I'm closing it.


appendChild error

Getting the following error:
Uncaught TypeError: Cannot read property 'appendChild' of undefined vminpoly.js:80 browserSupportsUnitsNatively
(anonymous function) vminpoly.js:351
(anonymous function)  vminpoly.js:351
Any way to fix this? completely kills IE

I am also having this problem. Anybody figured it out yet?


[Yarn script]Move host dir under yarn monitor, simplify yarn script exit log

Move all host folders under yarn monitor

Simplify yarn exit log, origin log is  too repetitive.

Coverage remained the same at 51.774% when pulling af69d95e498135dabdfa0aa5dd005379cb4b5b6e on zimiao/move_dir_to_yarn_local into 74d9dc50fbd346c38f5f8d0587c7660b92754a06 on master.


Add metrics for metadata sync

What changes are proposed in this pull request?
This change adds monitors on many data structures and thread pools used during the metadata sync process. See the end of description for more details.
Why are the changes needed?
The current metadata sync process cannot be monitored and the internal data structures sizes are unknown.
Does this PR introduce any user facing changes?
Yes the monitors are external facing.
More details on the metrics added
Metadata sync operation
Each metadata sync op -> METADATA_SYNC_OPS_COUNT +1
Metadata sync skipped -> METADATA_SYNC_SKIPPED +1
Metadata sync triggered and ended in SUCCESS status -> METADATA_SYNC_SUCCESS +1
Metadata sync triggered and ended in FAILED status -> METADATA_SYNC_FAIL +1
Metadata sync paths
During one metadata sync operation, the paths processed are:

If DescendantType.NONE, one sync root path
If DescendantType.ONE, one sync root path + number of direct children paths
If DescendantType.ALL, one sync root path + number of recursive children paths

The children are submitted to the metadata sync thread pool but the sync root path is processed by the RPC thread.
For all paths processed, they either contribute to METADATA_SYNC_PATHS_SUCCESS or MASTER_METADATA_SYNC_PATHS_FAILED.
Thus METADATA_SYNC_PATHS_SUCCESS + MASTER_METADATA_SYNC_PATHS_FAILED = total paths processed by all metadata sync operations
MASTER_METADATA_SYNC_ACTIVE_PATHS is a sum of all active paths in all InodeSyncStream. They are the paths submitted to the sync thread pool. MASTER_METADATA_SYNC_ACTIVE_PATHS should be bounded by n(InodeSyncStream) * MASTER_METADATA_SYNC_CONCURRENCY_LEVEL
MASTER_METADATA_SYNC_PENDING_PATHS is a sum of all InodeSyncStream.mPendingPaths. Note that these pending paths are not submitted to the sync thread pool yet.
Metadata sync thread pool
In each InodeSyncStream, there are paths being processed in the sync thread pool and paths that awaits to be submitted to the sync thread pool.
Each job can have these statuses:

SUCCESS: ends without exception
FAILED: an exception is thrown from the callable
CANCELLED

Prefetch thread pool
Prefetch thread pool and prefetch jobs
Two kind of UFS-accessing jobs are submitteed to the prefetch thread pool:

Single-path access like getStatus(path)
ListStatus access like listChildren(path)

So we count BOTH the number of prefetch jobs and prefetched paths. Each job can fetch 1 to many paths.
Each job can have these statuses:

SUCCESS: ends without exception
FAILED: an exception is thrown from the callable
RETRY: a get() timeout and needs to retry, we keep getting until it ends in any other 3 states
CANCELLED

Therefore we keep a counter for each status, plus a TOTAL.
UFS Cache sizes
UfsStatusCache has a lifecyle same to the bounding InodeSyncStream, therefore we need a global counter to monitor all the instances together.
UfsAbsentPathsCache is global, we just need a gauge on the internal sizes.
The two caches are also monitored.
Thread pool gauges
There are two thread pools used in metadata sync. They are both gauged on the queue size. All other aspects of the thread pools can be monitored or are already know.

Any thoughts on a counter for syncs that happened, but were not necessary (I'm not sure if any of your metrics capture this already)? For example if metadata is loaded from the UFS for a file, but the metadata is unchanged (for example by checking the fingerprint), then increment a counter? This could help a user know if they are wasting a lot of bandwidth doing unnecessary syncs. I think this check is done here https://github.com/Alluxio/alluxio/blob/55cc3b70278672ca0768634c9d1439350faa7cf5/core/server/master/src/main/java/alluxio/master/file/meta/UfsSyncUtils.java#L35

It's quite comprehensive. I'm afraid some might go away once we refactor the sync-engine. But it's good to have such wide coverage for later investigations, so I'm OK.

Yes I added these for similar purposes. Currently I don't really have a clue which direction to improve/tune the sync engine towards, and I'm relying on these metrics to show me what is the current bottleneck.
In terms of performance, I believe the journal writing, log messages and UFS access are the response-time dominator, and having potentially excessive metrics (3 counters vs 1 counter) should not be a big deal at least in the short term.

Any thoughts on a counter for syncs that happened, but were not necessary (I'm not sure if any of your metrics capture this already)? For example if metadata is loaded from the UFS for a file, but the metadata is unchanged (for example by checking the fingerprint), then increment a counter? This could help a user know if they are wasting a lot of bandwidth doing unnecessary syncs. I think this check is done here
https://github.com/Alluxio/alluxio/blob/55cc3b70278672ca0768634c9d1439350faa7cf5/core/server/master/src/main/java/alluxio/master/file/meta/UfsSyncUtils.java#L35

@tcrain Makes sense to me. Although one could argue "Seeing this counter being high doesn't tell me which syncs are wasted", I think this can be a handy guard against a general bad sync time across the system (like overusing sync.interval=0). I'll add that.

one thing that would be nice to have is some sort of estimation on how much time syncing x files will take.
Can we get some sort of rate measurement in there? Like time per file synced? using this, we can tell the customers that syncing 1 million file will take x minutes etc. @jiacheliu3

Yeah i think counter that increment by number of success and a counter that counts number of seconds spent doing meta sync open will do

Yeah i think counter that increment by number of success and a counter that counts number of seconds spent doing meta sync open will do

To be more clear, there's a maximum throughput and there's a current throughput. By recording the paths and time elapsed, we get a changing "current throughput". And the maximum throughput will be the max(all current throughput values you see). Just wanted to set the observers' expectation straight.

alluxio-bot, merge this please


Added ACF figure for SHO section.

I find it helpful to visualize the ACF along with the PSD, so I added a figure in the SHO section showing ACFs corresponding to PSDs that are plotted for various Qs.

Sounds good. I'll actually remake it so that the style is consistent.


Update globals.py

DRF 3.14.0 support
see https://stackoverflow.com/questions/73823833/attributeerror-module-rest-framework-serializers-has-no-attribute-nullboolea for more info

For the second commit: If the project structure as shown in the DRF quickstart guide is followed, in which your app is 'nested' within your project, then your app_config.name will be in the format of project_name.app_name which is incompatible with module.split('.')[0] == app_config.name. I therefore switched it to if module.startswith(app_config.name) to follow the same principle of checking the first part of the name while also being compatible with this kind of project structure.


Save off media transformations

Description

Add to_dict method for media transformation and leverage in the MMM in order to save off configurations completely
Related Issue

[ ] Closes #826
[ ] Related to #

Checklist

[ ] Checked that the pre-commit linting/style checks pass
[ ] Included tests that prove the fix is effective or that the new feature works
[ ] Added necessary documentation (docstrings and/or example notebooks)
[ ] If you are a pro: each commit corresponds to a relevant logical change

Modules affected

[x] MMM
[ ] CLV

Type of change

[ ] New feature / enhancement
[x] Bug fix
[ ] Documentation
[ ] Maintenance
[ ] Other (please specify):

📚 Documentation preview 📚: https://pymc-marketing--882.org.readthedocs.build/en/882/

@wd60622 we can merge this one after we you solve the merge conflicts :)

Any idea if the model version attribute needs to be updated?

Any idea if the model version attribute needs to be updated?

We actually do not have any explicit convention. I usually do it when there is a big refactor, but we can change that.


brew audit --strict  fail on macOS 10.14 Mojave

[ ] are reporting a bug others will be able to reproduce and not asking a question. If you're not sure or want to ask a question do so on our Discourse: https://discourse.brew.sh
[x] ran a brew command and reproduced the problem with multiple formulae? If it's a problem with a single, official formula (not cask) please file this issue at Homebrew/homebrew-core: https://github.com/Homebrew/homebrew-core/issues/new/choose. If it's a brew cask problem please file this issue at https://github.com/Homebrew/homebrew-cask/issues/new/choose. If it's a tap (e.g. Homebrew/homebrew-php) problem please file this issue at the tap.
[x] ran brew update and can still reproduce the problem?
[x] ran brew doctor, fixed all issues and can still reproduce the problem?
[x] ran brew config and brew doctor and included their output with your issue?

https://gist.github.com/Maecenas/2beedc4842261cada6c02f8a0b31fc1d

What you were trying to do (and why)
Running brew audit --strict <formula> when doing Homebrew/homebrew-core#37059
What happened (include command output)

brew audit --strict wget
$ brew audit --strict wget
Error: cannot load such file -- jaro_winkler
Please report this bug:
  https://docs.brew.sh/Troubleshooting
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require'
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/rubocop-0.64.0/lib/rubocop/string_util.rb:3:in `<top (required)>'
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/rubocop-0.64.0/lib/rubocop.rb:21:in `require_relative'
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/rubocop-0.64.0/lib/rubocop.rb:21:in `<top (required)>'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:39:in `require'
/usr/local/Homebrew/Library/Homebrew/style.rb:21:in `check_style_impl'
/usr/local/Homebrew/Library/Homebrew/style.rb:14:in `check_style_json'
/usr/local/Homebrew/Library/Homebrew/dev-cmd/audit.rb:112:in `audit'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in `<main>'

What you expected to happen
This function should work
Step-by-step reproduction instructions (by running brew commands)

This is an issue with your Ruby setup. rm -rf /usr/local/Homebrew/Library/Homebrew/vendor/bundle may fix it.


⚠ ClamAV has degraded performance

In 49577b5, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 92 ms

Resolved: ClamAV performance has improved in 992875e.


Same links in string brake script.

http://google.com
"http://google.com"
(http://google.com)
google.com

Expected: first three links are highlighted, second in quotes, third in parentheses.
Actual:
http://google.com' target='_blank'>http://google.com' target='_blank'>http://google.com
"http://google.com"
(http://google.com)
google.com

Yikes, that doesn't look good. Could you share with me what your HTML looks like where you've got google.com mentioned 4 times in all those permutations? Thanks!

It was a unit test.
Actually you may obtain such result on forum/guestbook.


Marquee starts then stops on Safari until mouseover

The marquee seems to be working fine in Firefox and Chrome, but in Safari specifically when the page loads, it starts animating then immediately stops until there's a mouseover event.
I'm using one marquee for the loading state:
    renderLoadingState = () => (
        <Marquee play={false} gradient={false} pauseOnHover>
            <LoadingCard />
            <LoadingCard />
            <LoadingCard />
            <LoadingCard />
            <LoadingCard />
        </Marquee>
    );

and another for the actual loaded content:
    renderMarquee = () => {
        const { hikes } = this.state;

        return (
            <Marquee play pauseOnHover gradient={false} speed={30}>
                {hikes.map(
                    (
                        {
                            name,
                            city,
                            state,
                            coverPhoto,
                            review,
                            distance,
                            elevation,
                            difficulty,
                            hid,
                        },
                        index,
                    ) => (
                        <Card
                            name={name}
                            city={city}
                            state={state}
                            coverPhoto={coverPhoto}
                            review={review}
                            distance={distance}
                            elevation={elevation}
                            difficulty={difficulty}
                            hid={hid}
                            key={index}
                        />
                    ),
                )}
            </Marquee>
        );
    };

https://user-images.githubusercontent.com/1837100/122298126-5df53a00-ceca-11eb-8256-4d821b8523e5.mov

Also seeing an issue on Firefox on iOS where the marquee wont play unless you physically press the area around the marquee. Seems like the hover state interaction is somehow being inverted?

After a bit of debugging, if I pass in direction='right' that seems to at least restart the marquee on safari.

@pdugan20 thanks for the helpful info, I'll investigate this.

Can't seem to reproduce this on Safari 14.0.3. What version are you running? It seems that there are issues with the animation-play-state property in CSS with Safari 11.

Saw this happening on Safari 14.1.1 and on iOS 14.6. Happy to try and put together a code sample for you if that's helpful. This is the PR that fixed it for me: https://github.com/hikearound/hikearound-web/commit/d56330b288a8d93389229d7b0a8b2311529a7fb7

A code sample would be perfect, thanks a lot!

It's happening on my site here: https://launches.highsandlows.net.au/account

This seems to fix it for me:
@keyframes wake-up-marquee {
  from { transform: translateZ(0); }
  to { transform: translateZ(0); }
}

.marquee-container {
  animation: wake-up-marquee 0.1s infinite;
}

There's still an annoying flash every time the loop resets though! :(


Provide safer fallbacks for vocabulary-less facet variables

Temporarily resolves VEuPathDB/plot.data#134 (I couldn't move that issue into this repo!)
(Until vocabulary metadata is provided for these variables)

Oh, sorry @dmfalke - I think I linked the wrong issue in the description of this issue.  Will fix.


Consistent definition of explicit constants in BLAS calls + warnings removal(explicit type conversion in gpnorm, format W=>D+7, unused statement function)

Aiming at the larger changes incoming with the CP/DP PR, this PR performs some tidy-up:

in the DP and SP BLAS calls, ensures that explicit constant values are passed with JPRD and JPRM, respectively (instead of JPRB)
and removes compiler warnings through
commenting out unused statement function in tpm_pol
modifying write format in sugaw and benchmark that ensures W=>D+7
adding explicit, matching REAL type cast to JPRB in gpnorm invocation of max/min (this is due to the fact that one of the two arguments in max/min function is hard coded JPRD)
Code tested on ATOS with gcc,intel,nvhpc and on the WSL workstation with gcc,intel,nvhpc, as well as clang/gfortran on Mac ARM. I've noticed that some tests are failing under Intel 2024 on WSL Ubuntu workstation.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Apart from my comment above, this looks ready for merging.

Some CI suites are failing but that looks like another problem...

I have no strong feelings on this one way or the other...

I like all new changes since my last review except the last commit 629a65f
The types of ZBETA and ZVEC_OUT are declared with JPRB
REAL(KIND=JPRB),ALLOCATABLE :: ZBETA(:,:,:)

Even if not executed due to if (.NOT. LLDOUBLE) it is counterintuitive to have that different from the declaration. and compiler will create conversion instructions.

Fair enough, I can see your point about counterintuitive, although I'm not sure about the situation with conversion instructions actually being any different.

I like all new changes since my last review except the last commit 629a65f
The types of ZBETA and ZVEC_OUT are declared with JPRB
REAL(KIND=JPRB),ALLOCATABLE :: ZBETA(:,:,:)

Even if not executed due to if (.NOT. LLDOUBLE) it is counterintuitive to have that different from the declaration. and compiler will create conversion instructions.

Hmm, if I understand correctly, the conversion instructions would be generated in the inactive path only, and with the current (explicit: JPRM or JPRD) form the code seems better readable to me. @marsdeno @samhatfield  ?

@wdeconinck @marsdeno @samhatfield just to make clear, I expect one of you to mercifully merge it if its ready.

@wdeconinck could I be given rights to merge pull requests?

[like]  Olivier Marsden reacted to your message:

From: Willem Deconinck @.>
Sent: Thursday, November 30, 2023 8:53:05 AM
To: ecmwf-ifs/ectrans @.>
Cc: Olivier Marsden @.>; Mention @.>
Subject: Re: [ecmwf-ifs/ectrans] Consistent definition of explicit constants in BLAS calls + warnings removal(explicit type conversion in gpnorm, format W=>D+7, unused statement function) (PR #44)
Thanks @piotrowshttps://github.com/piotrows for this cleanup!
—
Reply to this email directly, view it on GitHubhttps://github.com/ecmwf-ifs/ectrans/pull/44#issuecomment-1833341951, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJ4E3JJCMYY43XZ4M3KF5JDYHBCPDAVCNFSM6AAAAAA7P5YCMWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZTGM2DCOJVGE.
You are receiving this because you were mentioned.Message ID: @.***>


can't run on android

./openp2p --token xxxxxxxxxxxxxxxx --loglevel 0
2022/06/15 09:09:23 9797 INFO openp2p start. version: 3.1.0
2022/06/15 09:09:23 9797 INFO Contact: QQ: 477503927, Email<EMAIL_ADDRESS>2022/06/15 09:09:23 9797 INFO &{{15555067135758357827 localhost      0 0  0 10 api.openp2p.cn 27183 27182 27183 60532} [] 0 false {0 0}}
2022/06/15 09:09:23 9797 INFO init start
2022/06/15 09:09:23 9797 DEBUG local port:51409  nat port:0
2022/06/15 09:09:23 9797 DEBUG detect NAT type error:lookup api.openp2p.cn on [::1]:53: read udp [::1]:57202->[::1]:53: read: connection refused
2022/06/15 09:09:23 9797 ERROR P2PNetwork init error:lookup api.openp2p.cn on [::1]:53: read udp [::1]:57202->[::1]:53: read: connection refused
2022/06/15 09:09:23 9797 INFO autorunApp start
2022/06/15 09:09:53 9797 INFO init start
2022/06/15 09:09:53 9797 ERROR echo server listen error:listen udp <IP_ADDRESS>:60532: bind: address already in use
2022/06/15 09:09:53 9797 DEBUG local port:50315  nat port:0
2022/06/15 09:09:53 9797 DEBUG detect NAT type error:lookup api.openp2p.cn on [::1]:53: read udp [::1]:55662->[::1]:53: read: connection refused
2022/06/15 09:09:53 9797 ERROR P2PNetwork init error:lookup api.openp2p.cn on [::1]:53: read udp [::1]:55662->[::1]:53: read: connection refused
2022/06/15 09:09:53 9797 ERROR P2PNetwork init error:lookup api.openp2p.cn on [::1]:53: read udp [::1]:55662->[::1]:53: read: connection refused
2022/06/15 09:09:53 9797 ERROR P2PNetwork login error

test on android termux  with arm64

it seems like dns problem. try ping api.openp2p.cn

ping api.openp2p.cn is ok
Maybe it's nat type error ?

DEBUG detect NAT type error:lookup api.openp2p.cn on [::1]:53: read udp [::1]:57202->[::1]:53: read: connection refused
what's your environment detail，i will try myself

Change network.ServerHost to IP address for api.openp2p.cn in config.json works for me.

openp2p3.2.0.linux-arm64.tar.gz is a linux binary, it needs /etc/resolv.conf to resolve domain name.

I have ported to a simple Android app(gomobie bind and a kotlin ui), it works fine on Huawei mate30 and Honor 7. I will release later

我用的华为p30 pro隐私空间下载的最新app，时不时掉线，连上后就显示为一个新的设备，怀疑特征码没有做对，掉线猜测是后台不稳定，按要求设置了，不知道哪里出了问题，系统是最新鸿蒙2.0


Gridsome develop failing with TypeError

gridsome develop is giving me the following error:

TypeError:   Object.fromEntries is not a function
at collectionStore.data.map.node   (/node_modules/gridsome-plugin-flexsearch/gridsome.server.js:70:34)
at Array.map ()
at getStoreCollection   (/node_modules/gridsome-plugin-flexsearch/gridsome.server.js:65:35)
at collection   (/node_modules/gridsome-plugin-flexsearch/gridsome.server.js:134:14)
at   /node_modules/gridsome-plugin-flexsearch/node_modules/p-map/index.js:57:28

Steps to reproduce
Run gridsome develop from the command line.
I'm currently on gridsome v.0.7.23 and @gridsome/cli v0.3.4.

Which version of NodeJS are you running (node -v in command line)? If it's 12, try installing version 14 and see if that resolves it.


Run Flask Application

It would be great if we could run a Flask application through Python to handle our lamp stack. Flask is a common web-framework, which handles WSGI through Werkzeug. We'll need this to interface with nginx.
There seems to be a lot of dependencies, but seemingly from python based libraries that won't need extra compilation.
An exception is how we'll want to interface with postgres, psycopg2, which uses the libpq library and needs to be compiled. Once we get the standard CPython modules compiled it's worth trying to compile this as well. You can get the NaCl compiled libpq library from compiling postgres.

After a while of debugging and solving issues, we got Flask running!
@(1:2844) $ lind /bin/bash /pyscr.sh

executing: [sel_ldr -a -- "/lib/glibc/runnable-ld.so" --library-path "/lib/glibc" /bin/bash /pyscr.sh]
[23214,1520510976:07:16:24.642293] BYPASSING ALL ACL CHECKS
 * Serving Flask app "hello" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://<IP_ADDRESS>:80/ (Press CTRL+C to quit)
        <IP_ADDRESS> - - [23/Feb/2022 17:16:38] "HEAD / HTTP/1.1" 200 -

This is the curl output.
`@(1:4267) $ curl -I -L index.html <IP_ADDRESS>
curl: (6) Could not resolve host: index.html
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 26
Server: Werkzeug/1.0.1 Python/2.7.2
Date: Wed, 23 Feb 2022 17:16:38 GMT`

WOW. This is amazing!

This can be closed now. We do need to run flask with psycopg2 but that will happen once we get postgres running.


Query Results Scaling

Describe the feature
Hi is i possible do scale the query preview. Currently it is very large - ideally i would like to be able to scale it down and keep all other windows/panels at the same zoom level. Is there a workaround?

Describe alternatives you've considered
No response
Who will benefit?
People working on laptop / small screens
Are you willing to submit PR?

[x] Yes I am willing to submit a PR!

@Yacobolo : Could you have a try add supporting this? This shouldn't be that hard and should be doable through CSS.

Ill give it a go!


Connect tasks with external tools

Scenarios:

I create tasks in an external system, and want to log time for those using Toggl tasks. I don't want to use the external task name for time entry description nor manually create tasks in toggl.
.(and not to help my team better understand time stentI don't want to
When creating a task in external systems I frequently change the name. Thus time entries are logged in with non-matching titles, thus screwing up the logs.
Project managers are gathering project status overview inside external tools. They want to quickly see the time spent on each task inside their organisational context.

Solution:

add source_uri'as a property for the task item and expose that in toggl-button for developers to define ( like "jira.MYPROJ-76", "myinstance.getflow.com/Fhbd5FJJf6fsl9", etc)
allow creation of tasks inside the button dialog (limited to manager roles)
When project exists or changes use source_uri to find possibly existing task and show that in UI.
For non-matching tasks suggest to create it by pre-filling the project creation dialog and allowing user to complete it.
When detecting name changes or completion for linked tasks developers could expose specific functionality to update task state also in toggl.
show time spent for a task inside the button dialog and expose that in button for developers to be placed elsewhere in the tool's ui

Using source_uri might make sense also for linking Projects not to depend on perfectly equal naming.

Tightly related with https://github.com/toggl/toggl-button/issues/284 and https://github.com/toggl/toggl-button/issues/681


Offensive word filtering

Once the bot's word filters are triggered, we will need to call a site endpoint to store the ID of the offending message, along with a "delete time" of one week after the authored time.
The bot will pull a list of offending message IDs daily, and delete the messages that have reached the alotted delete time.
This feature will be worked on after the Django rewrite is complete.

The corresponding site issue for this feature can be found here.

Hi, I would like to work on this please.


feat: add polytone

ref: #149
The initial migration of Polytone over with reviewers added from the DAODAO team. Releases CI will be done in another PR since it does not work in main currently (we can either do on every push to main, just optimize, or just on tagged releases (prefered))

Blocked on coordination w/ getting them in as codeowners, copying over the wiki, and handling releases

cc @NoahSaso / @JakeHartnell All workflows are in, latest v1.1.0 as well.
Releases tested in my personal repo (https://github.com/Reecepbcups/ibc-apps/releases). The 1.1.3 tag is just unique so I did not have to delete tags while testing workflows

All that is left is pulling over issues & the wiki copy paste. I'll tag v1.1.0 here once merged to main :)

The remaining audit dep check is an upstream wasm import
    ... which satisfies dependency `ed25519-zebra = "^3"` (locked to 3.1.0) of package `cosmwasm-crypto v1.5.5`
    ... which satisfies dependency `cosmwasm-crypto = "^1.5.5"` (locked to 1.5.5) of package `cosmwasm-std v1.5.5`

This repo uses the 4.1.3 safely. Safe to merge


[10.x] Introduce Observe attribute for models

This pull request introduces a new attribute class for registering model observers.
Example:
#[Observe(UserObserver::class)]
class User extends Authenticatable
{
    //
}

This change means you don't have to register the observers in a service provider. It just makes the code clearer and less confusing, making it easier to understand what's going on.

This is so cool! Dealing with random side effects coming from model event listeners hidden in the service provider or in the booted method buried deep in the model has been a real pain.

Not saying I'm totally sold on the feature, but I wonder if the attribute should be on the observer itself?
#[Observe(User::class)]

I'd prefer auto discovery for observers, just like the current auto discovery for policies.

@taylorotwell the point of having it on the model is to show right away that there are side effects for this model.

I agree with @emargareten. Many times I've encountered unexpected behavior and spent a considerable amount of time debugging, only to realize that there is an observer on the class. Placing them at the top of the model will immediately clarify where to look when something unexpected happens.

Updated to ObservedBy which I think makes more sense. Thanks 👍

Is there the possibility to improve upon this feature? I know it was merged in 2 months ago, but the solution is somewhat hacky, and obfuscates some of the functionality behind magic, and arguably invalid code.
The primary issue is that the code doesn't really use the attribute itself, instead it uses the ReflectionAttribute::getArguments() method, which, while it works, is pretty hacky. Because of this, we have the ObservedBy::__construct() method as follows:
/**
 * Create a new attribute instance.
 *
 * @param  array|string  $classes
 * @return void
 */
public function __construct(array|string $classes)
{
}

In reality, this should be:
public readonly array $classes;

/**
 * Create a new attribute instance.
 *
 * @param  string  ...$classes
 * @return void
 */
public function __construct(string ...$classes)
{
	$this->classes = $classes;
}

Then the handling code:
return collect($reflectionClass->getAttributes(ObservedBy::class))
    ->map(fn ($attribute) => $attribute->getArguments())
    ->flatten()
    ->all();

Would be:
return collect($reflectionClass->getAttributes(ObservedBy::class))
    ->map(fn ($attribute) => $attribute->newInstance()?->classes)
    ->flatten()
    ->all();

I appreciate that this may be nitpicking, but introducing unused constructor parameters that are only there so that they can be pulled out with reflection is a messy solution, and introducing code like this can, as a whole, bring down the overall standard of the frameworks code.
The same for the typing used on the constructor parameter, which actually introduces two different syntaxes for using this attribute.
#[OrderedBy(MyObserver::class)]
class SomeModel extends Model {}

and
#[OrderedBy([MyObserver::class, MyOtherObserver::class])]
class SomeModel extends Model {}

When you also consider that the attribute is repeatable, you end up with a third way.
#[OrderedBy(MyObserver::class), OrderedBy(MyOtherObserver::class)]
class SomeModel extends Model {}

Which makes the following code valid within Laravel.
#[OrderedBy(MyObserver::class)]
#[OrderedBy([MyOtherObserver::class, YetAnotherObserver::class]), OrderedBy(MoreObservers::class)]
class SomeModel extends Model {}

In reality, the only syntax that should be accepted here, is:
#[OrderedBy(MyObserver::class, MyOtherObserver::class, YetAnotherObserver::class)]
class SomeModel extends Model {}

Since attributes are not inherited, and the attribute itself does not and is used for nothing but a marker that contains a bit of data, there's no need for it to be repeatable.
It should also be noted that the documentation makes no reference to the fact that it's repeatable, or that there's a second syntax for providing multiple observers in one.
Ideally, the method HasEvents::resolveObservableAttributes() would be:
public static function resolveObserveAttributes()
{
    $reflectionClass = new ReflectionClass(static::class);
    $attribute = $reflectionClass->getAttributes(ObservedBy::class)[0] ?? null;

    return $attribute?->newInstance()->classes;
}


admin: support /drain_listeners?skip_exit

Commit Message: admin: support /drain_listeners?skip_exit
Additional Description:
Due to changes in Kubernetes (https://kubernetes.io/blog/2023/08/25/native-sidecar-containers/) around sidecars, there is a more optimal way to manage the lifecycle of Envoy as a sidecar in Kubernetes. However, it is not currently possible with the current knobs.
Our goal:

When the pod starts terminating, start "draining" inbound connections. Accept new ones, but respond with GOAWAY/connection=close to discourage clients
In parallel (outside of envoy), clients should be discourage to making new connections generally
Once the application container shuts down, we have nothing left to do; as a sidecar proxy, we exist only to serve the application container. Shutdown ~immediately

The time between (1) and (3) can be quite large (but not unbounded; Kubernetes has a max time before it will SIGKILL everything).
How we want to implement this:

When pod starts terminating, /drain_listeners?graceful&skip_exit
When application container shutsdown, SIGTERM Envoy.

The reason we need a skip_exit is due to the timing between the two. If we just do this without skip_exit if the application container takes > drain-time-s we will block new connections unexpectedly. While we could just raise the drain-time, this also impacts other draining (notably, LDS update), which may be unexpected.
Risk Level: Low
Testing: Added new integration test based on existing ones around draining
Docs Changes: Add docs to admin.rst

@howardjohn you need to fix the format. Looks like some white space issue by your editor. Can you run bazel run //tools/code_format:check_format -- fix and apply the fixes?

Ok I don;t really understand why me adding 1 line means the entire file should reformat, but done. Hope that works

Can you resolve the conflict? Also, please don't force push.


feat(react-email): Add sharp as a dependency on build

Is this actually adding sharp as dependency?

Is this actually adding sharp as dependency?

Yeah, it adds it as a dependency inside of .react-email/package.json to avoid the warnings without having to always be downloaded with the package as we discussed.


[MM-12006] Add SearchHint component and use it on SearchBar and SearchResults

Summary
Add SearchHint component and use it on SearchBar and SearchResults
Ticket Link
Jira ticket: MM-12006
Checklist

[x] Ran make check-style to check for style errors (required for all pull requests)
[x] Ran make test to ensure unit and component tests passed
[x] Added or updated unit tests (required for all new features)
[x] Includes text changes and localization file (.../i18n/en.json) updates

@jsonblais lets consider this and make translators aware

@jasonblais lets consider this and make translators aware

To add, 25% of all servers don't use an English language by default, so we're introducing a potential quality issue / bug that could affect all users on those 25% of servers.

Thanks @jasonblais, basically there's a conflict with the "Search Options" header.  We have that on search bar but not on search result, and since it's on a single translation entry, there's really a need to touch the en translation.  I'll check again and see what's the minimum change possible.

@jasonblais One option is no other deletion and modification in en.json except to add 2 translation entries of:

Use before: to find posts before a specific date
Use after: to find posts after a specific date

In my opinion, my initial change is the better way to do it but let me know which do you prefer?

Perhaps is best to leave it as it is, but then @jasonblais can make the call to push this to 5.4

Okay, so sounds like to fix this properly, we should keep it as-is. I'm okay with that.
Then the decision is whether to fix in v5.3 or v5.4.

If v5.3, we have the risk of having English text for a UI component that's used by (almost) everyone. Affects 25% of servers.
If v5.4, we have the risk of having inconsistent text between search results and search dropdown.

Given 2 is lower impact, propose pushing to v5.4.

@enahum @jespino Base branch changed to master. Basically no change except on fixing conflicts with the translation.
Please take a look again before merging to master. Thanks.


Regression when creating backup: backup file equal to disk size is created

Gitea version: 1.13-rc2
Git version: 2.26.2
Operating system: ubuntu 20.04 (Gitea via docker)
Database (use [x]):

[x] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No

Log gist:

Description
When dumping a backup of a gitea docker install via
docker exec -u git gitea bash -c 'gitea dump -w /tmp -c /data/gitea/conf/app.ini -f /data/gitea/conf/backup_gitea_$(date +\%d-\%m-\%Y).zip'

the output file that gets created fills up the whole disk space within ~10 seconds.
However, when executing the commands from above in parts, the backups is created just fine and finishes in < 1 sec:
docker exec -it gitea bash
su - git
gitea dump -w /tmp -c /data/gitea/conf/app.ini -f /data/gitea/conf/backup_gitea_assets_$(date +\%d-\%m-\%Y).zip

I also tried this on 1.14.0+dev-233-g0615b668d.
docker version
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:02:52 2020
 OS/Arch:           linux/amd64
 Experimental:      false

I digged a bit deeper and turning on verbosity I found the following
bad case (docker exec)
docker exec --user git gitea bash -c 'gitea dump -V -w /tmp -c /data/gitea/conf/app.ini -f /data/gitea/conf/backup_gitea_assets_$(date +\%d-\%m-\%Y).zip'
2020/11/19 15:16:41 cmd/dump.go:278:runDump() [I] Dumping database...
2020/11/19 15:16:41 cmd/dump.go:32:addFile() [I] Adding file gitea-db.sql
2020/11/19 15:16:41 cmd/dump.go:290:runDump() [I] Adding custom configuration file from /data/gitea/conf/app.ini
2020/11/19 15:16:41 cmd/dump.go:32:addFile() [I] Adding file app.ini
2020/11/19 15:16:41 cmd/dump.go:55:addRecursive() [I] Adding dir  custom
2020/11/19 15:16:41 cmd/dump.go:55:addRecursive() [I] Adding dir  custom/conf
2020/11/19 15:16:41 cmd/dump.go:32:addFile() [I] Adding file custom/conf/backup_gitea_assets_19-11-2020.zip
Failed to include custom: custom/conf/backup_gitea_assets_19-11-2020.zip: copying contents: write /data/gitea/conf/backup_gitea_assets_19-11-2020.zip: no space left on device

good case (interactive in the container)
gitea dump -V -w /tmp -c /data/gitea/conf/app.ini -f /data/gitea/conf/backup_gitea_assets_$(date +\%d-\%m-\%Y).zip
2020/11/19 15:18:40 cmd/dump.go:278:runDump() [I] Dumping database...
2020/11/19 15:18:41 cmd/dump.go:32:addFile() [I] Adding file gitea-db.sql
2020/11/19 15:18:41 cmd/dump.go:290:runDump() [I] Adding custom configuration file from /data/gitea/conf/app.ini
2020/11/19 15:18:41 cmd/dump.go:32:addFile() [I] Adding file app.ini
2020/11/19 15:18:41 cmd/dump.go:306:runDump() [I] Custom dir /usr/local/bin/custom doesn't exist, skipped
2020/11/19 15:18:41 cmd/dump.go:55:addRecursive() [I] Adding dir  log
2020/11/19 15:18:41 cmd/dump.go:370:runDump() [I] Finish dumping in file /data/gitea/conf/backup_gitea_assets_19-11-2020.zip

Note the difference after Adding file app.ini.
Unfortunately setting -C somevalue did not work: docker exec --user git gitea bash -c 'gitea dump -V -w /tmp -c /data/gitea/conf/app.ini -C /foo -f /data/gitea/conf/backup_gitea_assets_$(date +\%d-\%m-\%Y).zip'.
2020/11/19 15:24:09 cmd/dump.go:278:runDump() [I] Dumping database...
2020/11/19 15:24:09 cmd/dump.go:32:addFile() [I] Adding file gitea-db.sql
2020/11/19 15:24:09 cmd/dump.go:290:runDump() [I] Adding custom configuration file from /data/gitea/conf/app.ini
2020/11/19 15:24:09 cmd/dump.go:32:addFile() [I] Adding file app.ini
2020/11/19 15:24:09 cmd/dump.go:306:runDump() [I] Custom dir /foo doesn't exist, skipped
2020/11/19 15:24:09 cmd/dump.go:310:runDump() [I] Packing data directory...data
2020/11/19 15:24:09 cmd/dump.go:32:addFile() [I] Adding file data/gitea/conf/backup_gitea_assets_19-11-2020.zip
Failed to include data directory: data/gitea/conf/backup_gitea_assets_19-11-2020.zip: copying contents: write /data/gitea/conf/backup_gitea_assets_19-11-2020.zip: no space left on device
2020/11/19 15:24:13 cmd/dump.go:171:fatal() [F] Failed to include data directory: data/gitea/conf/backup_gitea_assets_19-11-2020.zip: copying contents: write /data/gitea/conf/backup_gitea_assets_19-11-2020.zip: no space left on device

Is there a better way of doing backups via docker?
This blocks us since we are unable to do automatic backups.
I also added docker version info to the OP.

Is there a better way of doing backups

@pat-s you just have to save: the database, config-file & data folder. so you could simply could create your own backup solution based on your enviroment ... e.g. docker

right! I was loosing focus.
We are already backing up the DB and I could simply zip the other assets via the mounted volume 🤦
DBNAME=gitea; zip -q -r backup_$(echo $DBNAME)_$(date +\%d-\%m-\%Y)_assets.zip /home/ubuntu/gitea/gitea
s3cmd put /home/ubuntu/backup_$(echo $DBNAME)_$(date +\%d-\%m-\%Y)_assets.zip s3://s3-name/backup_$(echo $DBNAME)_$(date +\%d-\%m-\%Y)_assets.zip
rm /home/ubuntu/backup_gitea_$(date +\%d-\%m-\%Y)_assets.zip

Same problem on 1.13.1 version.

Same problem on 1.13.1 version.

Same problem on 1.13.2 version.

OK this is a not a regression - just a change in behaviour. It was never expected that you would store your backups in the custom directory and within the path of things added to the dump.
I've provided a PR to prevent adding the current dump file to the dump and to provide an option to prevent adding the custom dir.


Use more database iterators

Coverage increased (+0.02%) to 88.611% when pulling 42a71335dd526eedcb2dcdcbc07a02097fc58337 on use-db-iterators into 1ce852a07ae6ccd8eb74eb4abaaea059bf829462 on master.


address for image quality

@raduprv, you set image quality through these two lines (492-493)
    s->set_reg(s,0x42,0xff,0x2f);//image quality (lower is bad)
    s->set_reg(s,0x44,0xff,3);//quality

However in this post https://github.com/espressif/esp32-camera/issues/203#issuecomment-726236422 you control image quality by
s->set_reg(s,0x42,0xff,0x4f);//image quality (lower is bad)
s->set_reg(s,0x44,0xff,1);//quality

I assume that 0x2f or 0x4f are addresses where the value for image quality is stored. I'm surprised that image quality value can be assigned to different addresses. But maybe I misunderstand how the set_reg works?

It's not just one register that affects the image quality. There are quite a few, and I am pretty sure there are others that I haven't discovered. Again, try to experiment with the values and see what happens :)


ValueError: Failed to find any assets with country_code 'US' that traded between 2022-01-03 00:00:00 and 2022-01-10 00:00:00. This probably means that your asset db is old or that it has incorrect country/exchange metadata.

Dear Zipline Maintainers,
Before I tell you about my issue, let me describe my environment:
Environment
Windows 10
Python 3.10
ValueError: Failed to find any assets with country_code 'US' that traded between 2022-01-03 00:00:00 and 2022-01-10 00:00:00.
This probably means that your asset db is old or that it has incorrect country/exchange metadata.
I pip installed everything in a virtual environment.
But Im getting this error.
Now that you know a little about me, let me tell you about the issue I am
having:
Description of Issue

I set my envromnet  variables
Downloaded a quandl bundle
Ingested the quandle bundl
I used zipline run and tested the examples in the examples folder and all worked except momentum_pipeline

I couldnt get it to run from VS code I got an error saying:
ValueError: Failed to find any assets with country_code 'US' that traded between 2022-01-03 00:00:00 and 2022-01-10 00:00:00. This probably means that your asset db is old or that it has incorrect country/exchange metadata.

Dear Zipline Maintainers,
I ran into the same problem as well.
I have ingested the data from quandl and yet I think the data from 2018 onwards are not there.
This has also been mentioned on stackoverflow:
Quandl ingestion with zipline lacks data
Please let us know what to do/fix the bug in order to ingest data from 2018 onwards.

If not mistakened, quandl FREE api no longer provides stock data longer than March 2018...
So, you could choose either option below:
(1) pay for quandl premium
(2) ingest data using csvdir data bundle

Closing for lack of activity; feel free to reopen with additional questions/details.


Remove assumption on 3d/4d from code

Easier to understand interface, less code

if model assumes 4d input, put into model ensure_4d or something like that
remove code everywhere posible that adds empty dimensions etc.

This is done I think.


feature: FillFormat.transparency

example usage:
shape = slide.add_shape(...)
fill = shape.fill
fill.solid()
fill.fore_color.rgb = RGBColor(...)
fill.transparency = 0.5

Produced my own fix before coming across these pull requests. I would be interested to put together feature analysis, look at the 2 contributions, compare them to my own implementation and see if we can formalize this feature. Would be good to get some more details on what are the requirements for the contribution to be accepted.


Chore/add-author-YiLin1818

Description
Changes introduction of new author YiLin1818
Issues Resolved
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 BSD-3-Clause License.

Hello! You seem to have signed off only the first commit. Please run the following to fix the signoff on the remaining commits.

In your local branch, run: git rebase HEAD~4 --signoff
Force push your changes to overwrite the branch: git push --force-with-lease origin chore/add-author-YiLin1818


Camera Preview Using iSight Camera Not Canon EOS 40D

Hi,
I have installed release v0.2 of Calibrator on a MacBook Pro i5 running El Capitan 10.11.3 and also an i7 MacBook Pro i7 running Sierra 10.12.3
The camera is using EOS Utility <IP_ADDRESS>
On the capture page of Calibrator, the EOS 40D drop down entry links to the built in iSight camera and the entry for the iSight shows no image stream - I suspect that is actually the EOS preview not starting correctly.
Please can you help me to resolve this issue?
I have attached some screenshots and a Console log - let me know if you need any further info...
Thanks
Colin

Console - Calibrator Messages.txt

EOS Utility 2_2017-02-19-124125_wks51155.wakeups_resou.txt
Calibrator_2017-02-19-124300_wks51155.wakeups_resource.txt
I've included some additional diagnostic logs

The preview image is wrong, but when you select 40D, the captured image should be coming from 40D

I shall do some further tests and see if images fro the camera are captured

It just worked :) :)
The problem was caused by an earlier test of MadMapper which crashed
Thanks for your help


Script to migrate all existing users from to Keycloak

[x] Fetch all the existing users from supabase in JSON format
[x] Write script to migrate all the users to keycloak
[x] Implement bcrypt for password storage
[x] Reset Password flow to migrate existing supabase users to keycloak (mid sprint)
[x] Work on the Architechture diagram of login flow and reset password (mid sprint)
[x] Work on the forgot password feature to reset new password (mid sprint)

Tested in the QA environment and changes look fine.