Multiple ingress routes create multiple listeners on AGW port 80?

Describe the bug
When we deploy two separate sample apps with a host based ingress rule, the ingress controller creates two listeners on the application gateway both on port 80. Is this the expected behavior?
To Reproduce
apiVersion: v1
kind: Pod
metadata:
  name: aspnetapp
  labels:
    app: aspnetapp
spec:
  containers:
  - image: "neilpeterson/aks-helloworld:v1"
    name: aspnetapp-image
    ports:
    - containerPort: 80
      protocol: TCP
    readinessProbe:
      httpGet:
        path: /
        port: 80
      periodSeconds: 3
      timeoutSeconds: 1

---

apiVersion: v1
kind: Service
metadata:
  name: aspnetapp
spec:
  selector:
    app: aspnetapp
  ports:
  - protocol: TCP
    port: 81
    targetPort: 80

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: aspnetapp
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
spec:
  rules:
    - host: foo.bar.com
      http:
        paths:
          - backend:
              serviceName: aspnetapp
              servicePort: 81

apiVersion: v1
kind: Pod
metadata:
  name: aspnetapp2
  labels:
    app: aspnetapp2
spec:
  containers:
  - image: "mcr.microsoft.com/dotnet/core/samples:aspnetapp"
    name: aspnetapp2-image
    ports:
    - containerPort: 80
      protocol: TCP
    readinessProbe:
      httpGet:
        path: /
        port: 80
      periodSeconds: 3
      timeoutSeconds: 1

---

apiVersion: v1
kind: Service
metadata:
  name: aspnetapp2
spec:
  selector:
    app: aspnetapp2
  ports:
  - protocol: TCP
    port: 82
    targetPort: 80

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: aspnetapp2
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
spec:
  rules:
    - host: bar2.com
      http:
        paths:
          - backend:
              serviceName: aspnetapp2
              servicePort: 82

Ingress Controller details
Name:         ingress-azure-1596716976-b65d8d6b4-7mm9q
Namespace:    default
Priority:     0
Node:         aks-agentpool-14866480-vmss000001/<IP_ADDRESS>
Start Time:   Thu, 06 Aug 2020 14:29:40 +0200
Labels:       aadpodidbinding=ingress-azure-1596716976
              app=ingress-azure
              pod-template-hash=b65d8d6b4
              release=ingress-azure-1596716976
Annotations:  checksum/config: bd3822e16a51f0cc7f98d3d3c350f02d72662013be8b4d259fadb431524dbd71
              prometheus.io/port: 8123
              prometheus.io/scrape: true
Status:       Running
IP:           <IP_ADDRESS>
IPs:
  IP:           <IP_ADDRESS>
Controlled By:  ReplicaSet/ingress-azure-1596716976-b65d8d6b4
Containers:
  ingress-azure:
    Container ID:   docker://e6e2ff888cff0659546330a499feb0de574055a16822d44b5d6196b94fd994d5
    Image:          mcr.microsoft.com/azure-application-gateway/kubernetes-ingress:1.2.0
    Image ID:       docker-pullable://mcr.microsoft.com/azure-application-gateway/kubernetes-ingress@sha256:de458f962eab0cd2de19d23dfeb9a0e4bc2565a38f8c45cc98a74f3cda8b940c
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Thu, 06 Aug 2020 14:29:55 +0200
    Ready:          True
    Restart Count:  0
    Liveness:       http-get http://:8123/health/alive delay=15s timeout=1s period=20s #success=1 #failure=3
    Readiness:      http-get http://:8123/health/ready delay=5s timeout=1s period=10s #success=1 #failure=3
    Environment Variables from:
      ingress-azure-1596716976  ConfigMap  Optional: false
    Environment:
      AZURE_CLOUD_PROVIDER_LOCATION:  /etc/appgw/azure.json
      AGIC_POD_NAME:                  ingress-azure-1596716976-b65d8d6b4-7mm9q (v1:metadata.name)
      AGIC_POD_NAMESPACE:             default (v1:metadata.namespace)
    Mounts:
      /etc/appgw/azure.json from azure (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from ingress-azure-1596716976-token-bzbsb (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  azure:
    Type:          HostPath (bare host directory volume)
    Path:          /etc/kubernetes/azure.json
    HostPathType:  File
  ingress-azure-1596716976-token-bzbsb:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  ingress-azure-1596716976-token-bzbsb
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:          <none>

The created listeners:

@bhartm3 yes, this is expected. The error you are seeing on portal is due to the new feature introduced in HTTP Listener. This feature is being lighted up in portal and you should stop seeing this error soon.

@akshaysngupta question about this.  I've seen the comment that it is being lighted up, but what does that mean exactly?  It's being rolled out?  I know that re-creating the app gateway doesn't enable it, so not sure if it is just slowly being released?  Any idea when this is expected to be fully rolled out?  I have ignores in place in my Terraform updates to handle it at this point.  Thanks!


Register, Then Attempted Login Before Email Verification Invalidates Email Verification Link

We seem to be having the following issue:

A User registers (verification required).

A verification email is sent.

The user doesn't click the link on the verification email but just attempts to login, which fails because they have not verified.

Then, when they click on the link in the verification email, they get an "Invalid Key" error. It's as though the attempted login has invalidated the verification key in the link in the email.

At that point they are stuck. Unable to login because they have not verified and also unable to verify because the link is now invalid.
Are we doing something wrong? Is this a common issue/scenario?
Please advise.
Thanks.

If they request a password reset and their email account has never been verified then a new verification email will be sent (as if they had just signed up).
The email verification token expiration timeout can be changed via .config or in the MR config object.

Thanks for your quick response.
It doesn't seem to be a token expiration issue. Sometimes less than a minute or two has passed. It seems as though the login attempt itself is invalidating the token/key sent in the verification email. Is that possible?

One other question: Is there a way to resend the verification email without requiring that they change their password?
Thanks again.

Ok, not sure I follow the sequence. I'll see if I can find time to repro what you're saying. Any interesting configuration you have that might affect this or be related?

Nothing fancy.

Thanks.

To re-trigger the verification email for new accounts just call ResetPassword

Will they have to actually change their password? Thanks again.

No. If the account has never confirmed the email we don't trust the email, so we don't allow password resets until the email has been confirmed.

Got it. Thanks again.

Brock, we are seeing a similar situation.  Either the email never reaches them or they just don't bother to check for the email.  They try to login right away and then they brick their account.  How long can you realistically extend the expiration of the verification link?  Is it safe to let them say verify several days or a week later?

Sure, make it a month if you want. The idea is that normally when a user is sitting there setting up an account, they're actively waiting to get the link so they can login.

Oh and I've not had the time to try to repo this yet. I've been busy on IdSvr's release (due next week). Once that's done, I'll have some breathing room to come back and follow up on these open issues.

Actually IdSvr is something I need to take another look at, before building my own solution.  Any teases or can you be sure to let us know when it’s official?
Connie DeCinko, Programmer Analyst
T:<PHONE_NUMBER>  F:<PHONE_NUMBER>
From: Brock Allen<EMAIL_ADDRESS>Sent: Wednesday, January 21, 2015 12:03 PM
To: brockallen/BrockAllen.MembershipReboot
Cc: Connie DeCinko
Subject: Re: [BrockAllen.MembershipReboot] Register, Then Attempted Login Before Email Verification Invalidates Email Verification Link (#482)
Oh and I've not had the time to try to repo this yet. I've been busy on IdSvr's release (due next week). Once that's done, I'll have some breathing room to come back and follow up on these open issues.
—
Reply to this email directly or view it on GitHubhttps://github.com/brockallen/BrockAllen.MembershipReboot/issues/482#issuecomment-70899499.

We plan on shipping next week: https://github.com/thinktecture/Thinktecture.IdentityServer.v3/milestones

I added VerificationKeyLifetime="02:00:00" to the <membershipReboot section of our web.config but it's causing the server to throw a 500 error.  Is this the correct format?  I see that it's supposed to be a timespan so I formatted it like accountLockoutDuration.
<membershipReboot
		requireAccountVerification="true"
		emailIsUsername="true"
		multiTenant="false"
		defaultTenant="AZBar"
		allowAccountDeletion="false"
		passwordHashingIterationCount="3"
		accountLockoutFailedLoginAttempts="5"
		accountLockoutDuration="00:05:00"
		passwordResetFrequency="0"
		VerificationKeyLifetime="02:00:00"/>

What version are you on? The latest on NuGet has it in there.

Using 7.2.  Looks like you exposed this feature just after that version.

Brock, where is the change log? I need to see what is going to break when I go from 7.2 to 8.1.  Thanks.

You know what -- I've not been keeping up on that (mainly because there have not been many changes). The main place is the commit history. But since you're on 7.x and it's now up to 8.x that means there is at least one breaking change. Again -- look at the checkin history. I know that's not a very satisfactory answer, so my apologies.
https://github.com/brockallen/BrockAllen.MembershipReboot/commits/master


buildDotnetModule: restore and build testProjectFile

Motivation for this change
Some fairly straightforward changes to automatically build tests when they're not referenced in the base project file. Also enables running them for jackett and opentabletdriver.
Noticed jackett being out of date when getting it to run the unit tests, so i've bumped it.
Things done

Built on platform(s)

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

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

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

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

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

[X] Fits CONTRIBUTING.md.

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

11 packages built:

ArchiSteamFarm
alttpr-opentracker
btcpayserver
depotdownloader
discordchatexporter-cli
jackett
nbxplorer
netcoredbg
opentabletdriver
python-language-server
ryujinx

/marvin opt-in
/status needs_reviewer

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

11 packages built:

ArchiSteamFarm
alttpr-opentracker
btcpayserver
depotdownloader
discordchatexporter-cli
jackett
nbxplorer
netcoredbg
opentabletdriver
python-language-server
ryujinx

I can only review the changes on OpenTabletDriver, would be interesting that someone can reviews the buildDotnetModule changes.
CC @prusnak.

Please fix build failure of jackett on x86_64-darwin: https://github.com/NixOS/nixpkgs/pull/151468/checks?check_run_id=4588836733
The jackett also fail on aarch64-darwin, but that is because we don't have mono there, let's track that in a separate issue: https://github.com/NixOS/nixpkgs/issues/151720
Maybe we can just set doCheck = !(stdenv.isDarwin && stdenv.isAarch64); # mono is not available on aarch64-darwin ?

Please fix build failure of jackett on x86_64-darwin: https://github.com/NixOS/nixpkgs/pull/151468/checks?check_run_id=4588836733 (ln: failed to create symbolic link '/nix/store/ibqqs49yif3jjzs67smciba8fjqmwrwy-jackett-0.20.184/bin/Jackett': File exists)

Huh, i didn't know executable name differentiates on linux and darwin. It should now always contain both the legacy and regular executable name on both platforms. Waiting on ofborg to build it, as I don't have a darwin machine.

Maybe we can just set doCheck = !(stdenv.isDarwin && stdenv.isAarch64); # mono is not available on aarch64-darwin ?

Done :+1:

@GrahamcOfBorg jackett opentabletdriver

@GrahamcOfBorg build jackett opentabletdriver

@GrahamcOfBorg build jackett opentabletdriver

@GrahamcOfBorg build btcpayserver nbxplorer

Thanks!


Removed some uses of duplicate ids in the webapp

Summary
We have some elements with id attributes that are being rendered in multiple places in the DOM, making it difficult to use the id as a reference. I've removed the id from these elements because they aren't being used by anything. This is done for WCAG.
Ticket Link
https://mattermost.atlassian.net/browse/MM-19590

@devinbinnie can you update with master?


Fix broken link

@phax

Codecov Report

Merging #15 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #15   +/-   ##
=========================================
  Coverage     25.54%   25.54%
  Complexity      141      141
=========================================
  Files            16       16
  Lines          1061     1061
  Branches        165      165
=========================================
  Hits            271      271
  Misses          697      697
  Partials         93       93

Continue to review full report at Codecov.

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

Gracias


Send urgent alerts to docs-ops-critical channel

Description
part of: https://github.com/pulumi/devrel-team/issues/893
As a way to help differentiate more critical alerts that need to be addressed with immediacy from those that are less urgent, this will send the production build and deploy pipeline failures as well as any failures to update community packages to the #docs-ops critical channel. Let me know what you think.

I'm not sure I'd feel good about this, to be honest, as it implies that the messages that go go into docs-ops can be ignored, which needn't be the case -- we just haven't (to date) treated these notifications drop-everything urgent. I'd rather see us (specifically the on-call person_ treat the notifications that go into docs-ops as requiring review (e.g., they set their Slack notifications to notify of all messages) than create a new channel for "no, seriously" notifications.
If there's a higher level of notification needed than docs-ops, we should consider paging. Personally I don't think there is, yet, at least not with the events we're currently monitoring, but if there were, a Slack channel probably wouldn't be my choice.

I strongly agree with @cnunciato's opposition to a doc-ops and doc-ops-critical channel. I'd much rather focus on making sure we only get notifications that we actually care about.


fix bug: AttributeError: 'Namespace' object has no attribute 'localfile' for fetch command

Also, please, add more to the description of this PR: I really don’t know what error it actually fixes (traceback? reproducer?) and thus I really don’t understand and cannot review how this commits helps.

Steps to reproduce:

1: write 'py2pack fetch py2pack' to command line
Expected result:
py2pack tarball is downloaded
Current result:
traceback (most recent call):
AttributeError: 'Namespace' object has no attribute 'localfile' for fetch command

The reason:
the object of Argparser class does not have local and localfile attributes, if we type 'py2pack fetch'
i added workaround with try - except, but, later, workaround was deleted
then i added one function 'fetch_local_data', which will work with attributes local and localfile, if none of these flags are provided, then 'fetch_local_data' function will call 'fetch_data' function

Please, rebase.

Please, rebase.

i added new branch 'main'


Running graph with zoom_and_pan option crashes windows when trying to zoom out

The nav settings used on the graph is:
SettingsNavigation {
    fit_to_screen: false,
    zoom_and_pan: true,
    zoom_step: 10.0,
    ..Default::default()
}

The panning works but when I try to zoom in/out I get an error:
thread 'main' panicked at 'Tried to allocate a<PHONE_NUMBER> wide glyph in a 8192 wide texture atlas', C:\Users<folder>.cargo\registry\src\github.com-1ecc6299db9ec823\epaint-0.22.0\src\texture_atlas.rs:200:9

Thanks for the report. I have not tested this on windows, it should be covered by egui means. But I will check anyway.


Add Dist file to control the product / CLI names

This is a requirement for the community edition. It also has some very nice benefits internally for Chef Inc.
- We get consistent usage of our product names. DK wasn't that bad, but it wasn't great.
- We provide a single place we can patch in Workstation to change the name in the UI from Chef DK -> Chef Workstation
I also updated a few places were Policyfile wasn't capitalized.
Signed-off-by: Tim Smith<EMAIL_ADDRESS>

I'm sure this is going to fail, but I wanted to get it up and I did it on a long flight.


Allow Access to PoP package when importing kubelogin.

Within the Arc Connectivity team, we make use of CSP (client-side proxy).
A sender component used to send messages for our scenarios. The code we use for our Pop scenario is the same one as PoP.
We are collaborating with @julienstroheker to maintain only a single instance of this code. And thus would require the ability to access this module from our CSP component.
I had originally opened this PR https://github.com/Azure/kubelogin/pull/447
@bcho following your suggestion I would instead open a new PR to create a package under pkg/ like pkg/pop, then put the required methods in there, but keep the implementation inside of the internal package.

SGTM, feel free to start a PR for this

@weinong FYI
We discussed about that while back ago when doing the change about pop on guard.
Goal is to have one central point where pop library is maintained.
Also please in the future, whenever there is changes/refactor on code we added (msal & pop) please tag us for reviews.
Thanks.

Closing.
https://github.com/Azure/kubelogin/pull/542
https://github.com/Azure/kubelogin/pull/568


Misspelling in Policy

There is a misspelling in this policy:
Connectivity/DiablePrintingOverHTTP
It should be:
Connectivity/DisablePrintingOverHTTP
However, when you spell it correctly the setting does not work. You must spell it incorrectly in order to enable the setting.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2e70a68f-210c-b27a-3224-2cfd80028e60
Version Independent ID: c6a94ff0-9ab2-cd09-c053-e09304d0d16a
Content: Policy CSP - Connectivity - Windows Client Management
Content Source: windows/client-management/mdm/policy-csp-connectivity.md
Product: w10
Technology: windows
GitHub Login: @ManikaDhiman
Microsoft Alias: dansimp

@jonathan-mckinney : in which OS version(s) & build(s) have you seen this typo in the GPO AMDX files?

The misspelling is not in the admx file, it is on the CSP itself.
You can see this in the registry as well under:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Connectivity\DiablePrintingOverHTTP
This is in Windows 10 1909. If this misspelling is fixed in the documentation it will also need to be fixed in the OS itself...

@jonathan-mckinney . Thanks to your intelligent finding.
Just now I changed in OS too

@ManikaDhiman . Will you accept to change in the OS itself  in coming next update.
I agreed @jonathan-mckinney  findings .

The misspelling is not in the admx file, it is on the CSP itself.
You can see this in the registry as well under:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Connectivity\DiablePrintingOverHTTP
This is in Windows 10 1909. If this misspelling is fixed in the documentation it will also need to be fixed in the OS itself...

Oh dear. This is "more than I bargained for" when it comes to helping out with improvements in the MS Docs repository. Knowing that this typo is in the OS itself, this means that the PR to change the documentation will be negligible at best, possibly counterproductive, in light of what needs to be done to fix this typo in the Windows operating system.
@denisebmsft & @mypil : Do you have any suggestions for what our course of action should be here? I worry that the OS typo might not be something we can do much to change, knowing that it has been present for at least 6 months in the real world, maybe longer, depending on how long the GPO has been available in the OS itself.
I look forward to your recommendation for what to do to move forward with this ticket and its related PR.

I agree with @illfated. We should hold off fixing the typo in the docs until it is fixed in the OS. The setting is mentioned in its misspelt version in the Policy CSP DDF file as well. I can reach out to the policy owner and let them know about this typo, but until they fix it, we should keep the doc as is.

Okay I agree as well

Hi @mypil, @illfated, Here's the update from the product team on this issue: Unfortunately the policy definition itself has a typo so we cannot fix this in the document nor fix in the future unless we introduce a new policy with the name without typo.
So, we would need to close this issue and leave the doc as is. Thanks!

@jonathan-mckinney - Thank you for submitting feedback.
From our understanding, the issue you raised has been answered by the author @ManikaDhiman so we will close this issue.
Thank you for your contribution to make the docs better! Much appreciated!


Add auto cleanup for dump sql temp files

Hi,
would be nice to cleanup the temporary sql dump files.
I would suggest using the NamedTemporaryFile context manager, see the commit in this PR.
Would do you think about this small improvement?

Thanks! At first I decided to not cleanup because filesystem will clean them eventually, but it is better to remove them.


How to GET a value of a specific entity

Hi, I have some Hombli smart plugs that use the Tuya API.  I manage to connect to them and switch the power on/of using your example flow.
These plugs also measure current, voltage, and power. Actually now and then the device sends a message with these values. These messages come at very irregular instants and not always contain all three values (which are dps nrs 18, 19, 20).
I tried to create a get command in the function block, but without success.  I do not quite understand the explanation of the input format in your docs.
How would the contents of the function block have to look for getting one or more values on command?

I have been strolling github a bit and found this:
tuyaDAEMON
It is (probably) there that I found that writing with set to a dp ID with a value of null is actually equivalent to reading the particular value. At least the Hombli Smart Plug returns the value!  This also works with multiple values.


Downloads header definition update

https://www.ebi.ac.uk/gwas/docs/fileheaders#_file_headers_for_ancestry_download
https://github.com/EBISPOT/gwas-ui/blob/documentation/goci-interfaces/goci-ui/src/main/docs/fileheaders-content.adoc
Action: update definition of “Broad ancestral category”
New definition:
BROAD ANCESTRAL CATEGORY: Ancestry category group label, assigned to reduce complexity within the data sets and place samples in context. For more information please refer to documentation [link]
Note, I haven't done this yet since we need the link

This can be done since we will retain the old url for redirection.


loadUrl with content using http:// not file://

When running loadUrl('file://' + __dirname + 'index.html')  my angular application to has unexpected flickers, showing uncompiled templates - even though they are preloaded into the template cache (dont 'load' from external files at all). This seems fixed when running a local express server and using loadUrl('http://localhost:12345/index.html') things act normally.
Interestingly, using node-webkit, it loads the files via file:// and things work fine. Im not sure where i should start looking. any ideas?

It seems that the rpc calls block the code execution of angular, but not the render? If i run an rpc call at startup to say, create the menu, then the template will 1st be rendered un-compiled.
eg. require('remote').require('menu').buildFromTemplate(template)
So, does that call delay the code execution of angular, so that its compile pipeline is blocked. Therefore the un-compiled template is flashed? If i put other blocking code in there, then it works fine
eg: var c = 0;
while(c<10000000){
c++;
}

Using remote blocks both the main process and renderer process because it sends synchronous messages, you might want to use ipc to send asynchronous messages explicitly to work around this.

It makes sense that it should block (being synchronous), but then, i'm wondering why it fails. I dont want it to asynchronous, i want it to block the render too.
I'll make a small example

@tonypee: I'm having similar issues with Angular, were you able to come to a resolution?


WIP: Convenient access to state space level and slope.

Codecov Report

Merging #2 into master will decrease coverage by 1.87%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master       #2      +/-   ##
==========================================
- Coverage   63.41%   61.53%   -1.88%
==========================================
  Files          10       10
  Lines         656      676      +20
==========================================
  Hits          416      416
- Misses        240      260      +20

Impacted Files
Coverage Δ

src/Options.jl
33.33% <0.00%> (ø)

src/misc.jl
0.00% <0.00%> (ø)

src/steadystate.jl
58.28% <0.00%> (-8.16%)
:arrow_down:

Continue to review full report at Codecov.

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


⚠ Processors has degraded performance

In 945e14d, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 93 ms

Resolved: Processors performance has improved in 7397816.


Client ID in unsecure environment?

Hi!
Great to see a C# wrapper of your API. Just one question: Any plans for introducing an authentication mechanism, that doesn't rely on a client-id + client-secret?
Currently, this basically prevents me from running any kind of client code on the user's computer, that interacts with the Dinero API (as the client-Id+secret, which is required for every request, in that case is quite easily disassembled).
The same goes for javascript-based client libraries...
Best regards,
Lars

Hi Lars
We are utilizing the authorization server from Thinktecture: https://github.com/IdentityModel/AuthorizationServer which implements the OAuth2 authorization code, implicit, resource owner and client credentials flows. If you write to<EMAIL_ADDRESS>I can set up your client to utilize for example the authorization code flow, which might the the thing that you are asking for?
Kind regards
Lars

That's just awesome to hear! :+1: from me!
I'll send you an email shortly :)


[WIP] implement sliding_windows()

This is the code for #64.
@bluss How do you feel about the design?
I'll write docs as soon as the design is approved.
The code as written now disallows the following by runtime checks:
let mut storage: SlidingWindowStorage<u32> = SlidingWindowStorage::new(3)
let iter = (0..100).sliding_windows(storage);

// a must go out of scope before the second call to iter.next()
let a = iter.next();
let b = iter.next();

// storage may not be dropped before the last Window, in this case a
let mut storage: SlidingWindowStorage<u32> = SlidingWindowStorage::new(3);
let a = {
    let iter = (0..100).sliding_windows(storage);
    iter.next()
};
std::mem::drop(storage);
// a points to garbage now

In either case the code panic!()s with an error message.

I think I hit some [breaking-change] related behaviour, but it seems to compile on stable at least :p

Thanks. I'll poke a bit at the code. I hope it can be done a lot safer with using Cell and references.

Ok I sent some edits to your branch as a PR.
The clean way to implement custom interior mutability is via UnsafeCell; also splitting storage and iterator enables the much safer pattern of borrowing the storage in each iterator element. This is all quite neat.
However, I remain sceptical of an iterator that panics if multiple elements live at the same thing; it will break when put into some iterator adaptors. So it's certainly interesting and cool. All solutions have downsides.

Maybe it would be maximally conservative, but we could consider using a Result type, returning Error if there is a borrowing error. It's a bit ridiculous, but it puts the error handling over in the user's court :/

I like the Result idea. I found it scary how invisible the whole unsafe borrowing thing was after I had cleaned up the api a bit!
I'll go ahead and merge your PR (thanks btw) and continue my work atop your changes. The Cell types make it a lot less scary ;)

Yes it's a lot better :) Cell is always completely safe to use, while UnsafeCell must be used with care.

Note that something that is mutated behind a shared reference (&-pointer) must be inside an UnsafeCell

Is it desired that the adapter throws away the last value of the underlying iterator and returns None forever as soon as it encounters a borrow error? (Actually it returns Some(Err(())) first and then None)

Wouldn't it be cool to give the user a chance to recover from a borrow error?

Right, that doesn't sound good. Better to check up front. I don't think recovering from borrow error is something that will happen in actual code; encountering it is evidence for a bug. With that reasoning, it really is borderline on whether it should panic or not.

I can't think of a realistic scenario where a borrow error is expected. Maybe there is some crazy code possible which does all the borrowing dynamically etc. etc. but that's a niche use case. Especially as window is neither send nor sync, so scary thread constructions are impossible. In that case a cloning implementation of windows wouldn't be a huge performance loss anyway I guess.
But I like how result makes it explicit that such an error can happen. It's quite likely that some other adapter messes things up.
However I'm leaning towards the panic solution because it makes user code more compact and result doesn't give the user a real alternative to panicking. Also if the user messes up a panic probably occurs early in the development process anyway as it's unusual to call next() just in rare cases twice.

I'll reopen it soonish, I just don't want to develop on master

great


Tweaked ionKeyboard, ionModal, ionPopup

ionKeyboard

Animated scroll to focused input if is behind keyboard
Fix floating input cursor on scroll (same as this issue)

ionModal

Fix animations (https://github.com/meteoric/meteor-ionic/issues/150)
Allow to close modal by templateName
Fix animation event handler (a new jQuery event hook was attached on every modal shown before)
Various bug fixes and performance improvements

ionPopup

Fix bug on popup close due to _domrange

+!


Support for multiline answers to questions

Feature or optimization description
Currently it's hard to imitate a file editor because the input for the question answer is a standard HTML input. A text area would allow for a multiline-edition.
To better visualize the issue here's the current size of the input (marked with a red color):

It would also be neat to be able to pre-fill the input so that one could put there current content of a file.
Applicable scene
File editors

OK, actually, there were plans to do this feature, but it was delayed by the production of the Shell component, and I will support this feature in the next version as soon as possible.

Already in 3.1.2 and 2.1.2  version supports this feature, thanks for your suggestion

To add the usage method, two new APIs are provided to open and close the text editor. To open, please call textEditorOpen, and to close, please call textEditorClose. Of course, the user can also click the button on the page to trigger the close. The following is an example of use:
onExecCmd(key, command, success, failed) {
    //  ... some logic
    if (key === 'edit') {
        Terminal.$api.textEditorOpen(this.name, {
            content: 'Please edit this text file.',
            onClose: value => {
                success([
                    {
                        class: 'success',
                        content: "Edit saved successfully!"
                    },
                    {
                        type: 'code',
                        content: value
                    }
                ])
            }
        })
    }
}

For more usage methods, please check the documentation:

textEditorOpen
textEditorClose

Alright thanks! :)

The text editor already supports custom styles, and it can be used after updating to version 2.1.3 or 3.1.3, and the effect can also be previewed in the online demo


update_zwift.sh could be further refactored into several files

update_zwift.sh could be further extracted into the first time install script (install_zwift.sh) and the updating of an existing zwift installation.

Believe this has been done.


Add keys to Whim's database

If it needs to create its own database file, Whim does so only with two CREATE TABLE statements, and neither one defines any keys of any kind.
Consider adding standard-issue auto-incrementing-integer primary keys to the two tables, or unique constraints based on other fields.

Resolved with #27.


Feature: Method similar to onbeforeunload for each @Page

Ionic 2

Hello! Thanks for opening an issue with us. Would you mind filling out the issue template that is displayed to you when you create a new issue and posting the content here? Unfortunately, I am having a hard time understanding exactly what feature you need from the title above. Does this documentation about lifecycle events in Ionic 2 help you? http://ionicframework.com/docs/v2/api/components/nav/NavController/

Lifecycle events were only callbacks I guess. Can It prevent user from going back, if user pressed back button accidentally while doing some critical tasks?

Ahh ok, it is on our roadmap to allow users to customize what happens when the back button is pressed, but this has just not been implemented yet. Look out for it in a coming release! Thanks for using Ionic!


RuboCop default_scope format

Hi I'm working with MongoId but I'm having some issues with the recommended format. how can I
fixed, or is MongoId's problem?, thanks
class Plan
  include Mongoid::Document
  # When I run rubocop it says default_scope expects a block as its sole argument. BUT works
  # line 17
  default_scope -> { where(status: true).asc(:price) }
  # but if instead I use the recommended way an exception is raised:
  # default_scope: wrong number of arguments (0 for 1) (ArgumentError)
  default_scope { where(status: true).asc(:price) }
end

here is my stack trace
/home/kiro/.rvm/gems/ruby-2.2.2/gems/mongoid-4.0.2/lib/mongoid/scopable.rb:90:in `default_scope': wrong number of arguments (0 for 1) (ArgumentError)
	from /home/kiro/Documents/Rails/festinare_api/app/models/plan.rb:17:in `<class:Plan>'
	from /home/kiro/Documents/Rails/festinare_api/app/models/plan.rb:1:in `<top (required)>'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `block in require'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:360:in `require_or_load'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:494:in `load_missing_constant'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:184:in `const_missing'
	from /home/kiro/Documents/Rails/festinare_api/db/seeds.rb:71:in `<top (required)>'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `load'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `block in load'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `load'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/railties-4.2.0/lib/rails/engine.rb:547:in `load_seed'
	from /home/kiro/Documents/Rails/festinare_api/spec/rails_helper.rb:30:in `block in <top (required)>'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/lib/rspec/core.rb:101:in `configure'
	from /home/kiro/Documents/Rails/festinare_api/spec/rails_helper.rb:24:in `<top (required)>'
	from /home/kiro/Documents/Rails/festinare_api/spec/controllers/api/v1/clients_controller_spec.rb:1:in `require'
	from /home/kiro/Documents/Rails/festinare_api/spec/controllers/api/v1/clients_controller_spec.rb:1:in `<top (required)>'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1226:in `load'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1226:in `block in load_spec_files'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1224:in `each'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1224:in `load_spec_files'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:97:in `setup'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:85:in `run'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:67:in `rescue in run'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:63:in `run'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:38:in `invoke'
	from /home/kiro/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.2.3/exe/rspec:4:in `<top (required)>'
	from /home/kiro/.rvm/gems/ruby-2.2.2/bin/rspec:23:in `load'
	from /home/kiro/.rvm/gems/ruby-2.2.2/bin/rspec:23:in `<main>'
	from /home/kiro/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `eval'
	from /home/kiro/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `<main>'

To be honest I didn't factor Mongoid at all in this check. All the Rails cops that are model-related assume you're using ActiveRecord.

I'm using ActiveRecord and was coming here to ask if the cop is working correctly, I'll add this here instead of opening a new issue.
While working through our TODO's I've activated this cop on a app with several default_scopes in an app and it resulted in several offences - telling me default_scope requires a block instead of a lambda. As far as I can tell these scopes have been working for some time problem free, and switching between lambda and block seems to make no obvious difference.
According to the docs  (http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Default/ClassMethods.html#method-i-default_scope):

(You can also pass any object which responds to call to the default_scope macro, and it will be called when building the default scope.)

So I wonder if this is a cop that's targeting an older version of Rails?
Or if there's another reason we should prefer block over lambda that I'm missing?

@DMA57361 I think it's just a bit more concise to use a block. RC is a style checker. Naturally, code which fails its style checks may still "work".

@alexdowad I think it's less that a style warning is working code that's a problem (it clearly isn't), but more that the cop states "default_scope expects a block as its sole argument", which is inaccurate - especially in the case originally raised, where that does not even work.
If I have a scope that needs to be evaluated at call-time instead of load-time (some comparison to Time.now, for example) a lambda is required to get the expected behaviour. I assume the same is true of default_scope (although, frankly, I haven't checked right now), if this is the case then pushing people to change away from lambda's might cause unexpected behavioural changes.

Guess this was the case when I wrote the cop. It might not be relevant anymore. I don't do much Rails programming these days.

@DMA57361 Thanks for further explanation. Can you suggest how this cop should be adjusted? Or do you think it should simply be removed?

I can only comment in terms of ActiveRecord, when used in Rails 4.1 and 4.2 (2 most recent big releases)
I'd make Rubocop suggest the use of lambdas as the recommended usage for both default_scope and scope. The first is the opposite of the current Rails/DefaultScope, and I think Rails/ScopeArgs does the latter already.
(I've roughly said this already, but to keep it together:) This is to avoid unexpected behaviour of the block versions being evaluated at load-time instead of call-time. For example, a scope of where('timestamp > ?', Time.now) - if used in a block this ends up getting locked to the same timestamp for every query until the server/worker is restarted (or class is reloaded in dev - making this easy to miss!), while when used with a lambda Time.now is the time the scope gets constructed into a query.

Maybe those cops should simply be dropped. In general I regret introducing the Rails cops, as they are pretty unreliable and susceptible to changes in Rails. Ideally they should be spun into a separate gem, but I'd be fine with simply deleting them...

I'd be sad if the Rails cops were dropped altogether, as we use them in our
team to help keep everyone to the same style, or at least talking about
style from a consistent viewpoint. However, I can see the benefit of
transferring them to a separate gem, e.g. "rubocop-rails", in the style of
rubocop-rspec.
Hiving them off to a separate gem might make it easier to keep up to date
with changes to Rails as well.
On Sun, 27 Dec 2015 at 00:04, Bozhidar Batsov<EMAIL_ADDRESS>wrote:

Maybe those cops should simply be dropped. In general I regret introducing
the Rails cops, as they are pretty unreliable and susceptible to changes in
Rails. Ideally they should be spun into a separate gem, but I'd be fine
with simply deleting them...
—
Reply to this email directly or view it on GitHub
https://github.com/bbatsov/rubocop/issues/1895#issuecomment-167372227.


Revamped visuals

-Revamped icons, techs visuals
-New mod icon (proposition)
-New tech icon for optical-fiber
-icon mipmaps
-updated changelog
-version bumped to 0.5.0
-optimized with pnggauntlet (lossless)
Tell me what you think, if there's something you don't like, tell me, I'll change it.
The icon is only Silicon to keep with the periodic table theme, tell me if that's a problem. But since Silicon is the basic element and is contained in Silica, I think it still fits.


(deps) Consider adding Renovate

I believe Renovate would significantly improve the dependency management process.
Renovate is a free app, a much better version of dependabot, that opens pull requests and takes care of most dependency updates. There are several settings that you can adjust, you can even ask it to automatically merge as seen below (which might not be a good idea for this project):
"packageRules": [
    {
      "matchUpdateTypes": ["minor", "patch", "lockFileMaintenance"],
      "automerge": true
    }
  ]

You can install it per repository or for the entire organization here. It uses GitHub actions to process your dependencies. Yes, the constant dependency notifications can be annoying. 🤣

Mark and I are neurotic enough to keep things up to date ourselves, ty tho


(Maintenance) Random values

🚀
This is more of a maintenance PR than anything. Just wanted to do some cleaning of usage of the random values/elements. I think this is a bit cleaner (and probably more performant in the case of the random strings).
I also updated the version just so that it points to the current version (it should be 1 ahead of the latest tag, right?).
Checklist

[x] I checked the Contributing Guidelines before creating this request.
[x] New extensions are written in Swift 4.
[x] New extensions support iOS 8.0+ / tvOS 9.0+ / macOS 10.10+ / watchOS 2.0+.
[x] I have added tests for new extensions, and they passed.
[x] All extensions have a clear comments explaining their functionality, all parameters and return type in English.
[x] All extensions are declared as public.
[ ] I have added a changelog entry describing my changes.

Do I need a changelog entry for this?

          2 Warnings

:warning:
Consider adding tests for new extensions or updating existing tests for a modified SwifterSwift extension

:warning:
The source files have been modified. Please consider adding a CHANGELOG entry if necessary.

          4 Messages

:book:
Thank you for submitting a pull request to SwifterSwift. The team will review your submission as soon as possible.

:book:
iOS: Executed 526 tests, with 0 failures (0 unexpected) in 10.672 (12.917) seconds

:book:
tvOS: Executed 495 tests, with 0 failures (0 unexpected) in 4.609 (5.782) seconds

:book:
macOS: Executed 360 tests, with 0 failures (0 unexpected) in 1.216 (1.535) seconds

  Generated by :no_entry_sign: Danger

@guykogus Since is just implementation details I don't think is required :))


Split command

Opening up a PR to collaborate on the split command!
Right now, this command:

accepts the standard args for select/exclude/selector to identify which resources should be moved
registers those resources as a subproject of the original project
calls the subproject.initialize() method.

The initialize() method:

iterates over the resources in the subproject

for resources represented by a .sql , .py, or .csv file, move that file into the subdirectory, then move the resource's yml entry, if necessary
for .yml defined resources, copy over only the resource yml entry.

writes the subproject's dbt_project.yml

These changes requires some new DbtYmlEditor methods, especially to handle the nuance of source files and make our methods more generic to other resource types that follow similar patterns. Additionally, there's a lot of variable renaming for accuracy's sake, so apologies in advance for lots of edits.
Things this command does not do, but will need to before shipping:

declare model access and groups for boundary nodes / leaf nodes of selected resources (question: do we need groups at all?)
edit children of boundary nodes / leaf nodes to use the multi-argument ref function
write a dependencies.yml file to the parent project
copy necessary macros from parent project to subproject
tests!
anything else we can think of!

I would really love some input here on syntax, logic, and design. This is not at all complete, but

@nicholasyager -- this now also moves relevant custom macros and blindly copies the packages.yml to the new subdirectory. There may be a small bug in one of the yml entry moving methods that I am trying to track down, but if you run a
> dbt-meshify split my_project --select +orders
> cd my_project
> dbt deps && dbt compile

you should get into a runnable state 🤞 let me know if that is the case! then we can work to actually make this code good which it currently is not

@dave-connors-3 I plan on looking at the code tomorrow evening, but in the meantime I did have a chance to noodle with the command as it's currently implemented.
My specific invocation, for reference:
poetry run dbt-meshify split --select +orders revenue

Here are some thoughts in no particular order:

Since we're copy packages.yml, we could also copy over the dbt_packages directory too. This will let the user needing to run dbt deps before their first build of the subproject.
We may want to have some logic in place that redistributes/partitions groups into the subproject. Currently, if a model is part of a group and that model is moved to a new project, it is retaining its old group and compilation fails.
As a user, it would be useful to have information logged during execution communicating what has been done. After running the split command for the first time, I was left thinking, "huh. I wonder if that worked." 😝

@nicholasyager agree on all fronts! made the small adjustments you recommended, and will spend some time today refactoring the initialization into a separate class that operates on dbt projects rather than have dbt projects have knowledge of the filesystem.
re: logging -- couldn't agree more, I'll open up a new issue so we can tackle it separately for all the commands we have! would love a dbt-esque logging experience in here too

@nicholasyager these tests pass locally -- I think my attempts to create and destroy test projects on the fly may need to be rethought!
in any case, this more or less is ready to be reviewed. I am ready to hand you the reigns on this PR to take a heavy editor's pen to the logic i've mangled here


Don't export outside annotations

Motivation and context

Fixes #1620
outside annotations were not considered during export.
How has this been tested?

Unit tests.
Checklist

[x] I submit my changes into the develop branch
[x] I have added description of my changes into CHANGELOG file
[ ] I have updated the documentation accordingly
[x] I have added tests to cover my changes
[x] I have linked related issues (read github docs)
[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[ ] I have updated the license header for each file (see an example below)

# Copyright (C) 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT

@zhiltsov-max could you fix tests?

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- cvat/apps/dataset_manager/formats/mot.py  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- cvat/apps/dataset_manager/formats/mot.py  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- cvat/apps/dataset_manager/formats/mot.py  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- cvat/apps/dataset_manager/formats/mot.py  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- cvat/apps/dataset_manager/formats/mot.py  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- cvat/apps/dataset_manager/formats/mot.py  1

See the complete overview on Codacy

Pull Request Test Coverage Report for Build 6328

17 of 18 (94.44%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.07%) to 65.214%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

datumaro/datumaro/components/project.py
10
11
90.91%

Totals

Change from base Build 6288:
0.07%

Covered Lines:
11063

Relevant Lines:
16556

💛  - Coveralls


Update telemetry.rst

Fixes #3247

@wiersgallak, GitHub recommended that I add you as a reviewer. Let me know if I should assign to another PM! :)


Disabling 3rd party cookies breaks event collection (with experience-platform-connector)

Hi everyone, as a precaution we're internally trying to detect the impact of the planned deprecation of 3rd party cookies by major browsers.
Google shares update on next step toward phasing out third-party cookies in Chrome (blog.google)
Saying goodbye to third-party cookies in 2024 | MDN Blog (mozilla.org)
As per the Adobe Cookie there are additional cookies in play required for some systems.
Currently the @adobe/magento-storefront-event-collector package (which in itself is a dependency of @magento/experience-platform-connector uses snowplow as a depedency. Which uses 3rd party cookies that when disabled make it so that the flow of event capture is broken.
Expected Behaviour
Events are captured by the event collector and sent to the edge server edge server collecting them.
Actual Behaviour
The events are captured by the event collector and are failing to be sent to the edge server collecting them.
Reproduce Scenario (including but not limited to)

clone latest version of pwa-studio
install @magento/experience-platform-connector
run pwa-studio locally
disable 3rd party cookies on Firefox or a Chrome-bases browser
perform any of the documented automatically captured events

Steps to Reproduce

disable 3rd party cookies on Firefox or a Chrome-bases browser
perform any of the documented automatically captured events

Platform and Version
pwa-studio
@magento/experience-platform-connector: "^1.0.5"
magento-storefront-event-collector": "1.6.0"

Sample Code that illustrates the problem
The issue is the mg cookie being set on snowplow.
Logs taken while reproducing problem
{
  "log": {
    "version": "1.2",
    "creator": {
      "name": "Firefox",
      "version": "129.0"
    },
    "browser": {
      "name": "Firefox",
      "version": "129.0"
    },
    "pages": [
      {
        "id": "page_1",
        "pageTimings": {
          "onContentLoad": 509,
          "onLoad": 688
        },
        "startedDateTime": "2024-08-02T08:42:52.601+01:00",
        "title": "REDACTED"
      }
    ],
    "entries": [
      {
        "startedDateTime": "2024-08-02T08:42:52.601+01:00",
        "request": {
          "bodySize": 0,
          "method": "POST",
          "url": "https://edge.adobedc.net/ee/v1/interact?configId=32aa7c42-63fb-4d55-b41e-3e5baa73e1ef&requestId=a310b94a-2206-4fed-8e9d-866a83877cbb",
          "httpVersion": "",
          "headers": [
            {
              "name": "Host",
              "value": "edge.adobedc.net"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:129.0) Gecko/20100101 Firefox/129.0"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.5"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br, zstd"
            },
            {
              "name": "Referer",
              "value": "REDACTED"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=UTF-8"
            },
            {
              "name": "Content-Length",
              "value": "2089"
            },
            {
              "name": "Origin",
              "value": "REDACTED"
            },
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Sec-GPC",
              "value": "1"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            }
          ],
          "cookies": [],
          "queryString": [
            {
              "name": "configId",
              "value": "32aa7c42-63fb-4d55-b41e-3e5baa73e1ef"
            },
            {
              "name": "requestId",
              "value": "a310b94a-2206-4fed-8e9d-866a83877cbb"
            }
          ],
          "headersSize": 0
        },
        "response": {
          "status": 0,
          "statusText": "",
          "httpVersion": "",
          "headers": [],
          "cookies": [],
          "content": {},
          "redirectURL": "",
          "headersSize": 0,
          "bodySize": -1
        },
        "cache": {},
        "timings": {},
        "time": 0,
        "pageref": "page_1"
      }
    ]
  }
}

Hello @seppulcro,
Thank you for submitting this. I've created an internal ticket MSRCH-4682 to review this request.


Add Apalache.tla to the pre-built package

Apalache.tla is needed if one is working with the TLA+ Toolbox, but it's not included in the pre-built package. The installation documentation could also briefly mention how to set it up in the Toolbox.

How are you importing the pre-built package in the Toolbox?

I meant that I just added a directory containing Apalache.tla to the TLA+ library path in the Toolbox. That's under Files->Preferences->TLA+ Preferences.

We do ship Apalache.tla in the uberjar that we distribute. But not sure how that interacts with the tlatoolbox.

I meant that I just added a directory containing Apalache.tla to the TLA+ library path in the Toolbox. That's under Files->Preferences->TLA+ Preferences.

That's strange. I just added a directory that contains Apalache.tla and Toolbox did not complain about missing files.

Yes, that works. I'm just saying that when I downloaded the pre-built package it was not obvious where to find Apalache.tla
Maybe it's somewhere in the jar file but I didn't think of looking inside the jar.
So I was suggesting to include Apalache.tla somewhere obvious in the pre-built package and to make a note in the install instructions to configure the Toolbox's library path.

This is really not a big deal but might be a point of friction from someone trying Apalache for the first time.

Yes, that works. I'm just saying that when I downloaded the pre-built package it was not obvious where to find Apalache.tla Maybe it's somewhere in the jar file but I didn't think of looking inside the jar. So I was suggesting to include Apalache.tla somewhere obvious in the pre-built package and to make a note in the install instructions to configure the Toolbox's library path.

I see. Yeah, for some reason, this does not work, though we are adding Apalache.tla to tla2sany/StandardModules/ of the jar file. I guess, we have to do it somewhat differently, if we want Toolbox to pick it up. Have to check it with Markus.

Given our current packaging and distribution goals and strategy, it might make the most sense just to document where users can find our TLA modules in the source tree and where to put them if they want to use it with TLA+ Toolbox?


Breaks user profile & community homepage icon & banner layout

Browser: Firefox 114.0.2 (64-bit)
I've tested this on multiple profiles and communities
Community screenshots
With compact old reddit theme by mershed_perderders

Without it:

Profile screenshot

Gotcha, I noticed this too with the old.reddit theme... Clearing your cache and reloading may fix the issue. I will look into this. Thanks for all your reports. I'm going to leave them open for further investigation.

Problem has been identified and resolved. Will be fixed in <IP_ADDRESS> (out sometime tonight). Thank you.


Disable decorators cache per-call

MR for #386
Not convinced about the naming (too long?), I'm open to suggestions.
Regarding the documentation, I am not sure where to put it since the docstring in the decorator is only for parameters for the decorator itself, and not calls to the decorator.

Not convinced about the naming (too long?), I'm open to suggestions.
Yeah I thought the same... Maybe cache_read and cache_write and set them to True by default?


Refactor RangeBuilder

Current status: too much warning in this class. We should make it generic.

Closing for now. Probably reopen it in future.


Confused about the rotation-invariant property and network design

Thank you for your excellent work. It is very interesting.
After reading your paper, I have a few questions about your network design, which makes me feel quite confused:
(1) On page 5, the first line of left column, "they are normalized to take the centroid as the origin." So do you mean you just ignore all the absolute coordinates of points? If so, this would transform each point subset into local patch. However, this would lead to inferior performance, as pointed out by the paper "Dynamic Graph CNN for Learning on Point Clouds" (page 5, the third paragraph on the right column): "Note that such a choice encodes only local information, essentially treating the shape as a collection of small patches and losing the global shape structure." In addition, I observe that when using only Euclidean distance as the relation h (so there is no absolute coordinate information utilized in the network), the classification performance of RS-CNN could still achieve 92.5, which is quite impressive. I wonder if this is contradictory to the statement made by "Dynamic Graph CNN for Learning on Point Clouds"?
(2) I observe that RS-CNN has one important property - rotation invariance. But if the absolute coordinates of points are input to the network as initial features, I think RS-CNN cannot achieve intrinsic rotation invariance. Am I missing some important information?
Thanks a lot.

(1) Thank you for this thought-provoking question that we actually overlooked. Here I just give my thoughts about this issue for discussion:
First, we observed no obvious difference in our experiments of these two settings, i.e., without normalization vs. with normalization. To be honest, the latter seems to work better in RS-CNN...
Second, revisiting classic image conv, a small conv kernel learns from only an image patch and it is shared along the spatial dimension. With this mechanism, image conv can learn abstract semantic information from local to global, in other words, from patches to the whole image. Therefore, I think RS-CNN working in the same way but the semantics are learned with points' relation encoded explicitly.
Third, I speculate that the reason of DGCNN working better with "absolute coordinates" added is the use of EdgeConv, in which both x_i and (x_j-x_i) are in feature space rather than 3D space (except for the 1st layer). In other words, different settings maybe work in different networks. However, we also expect that the "absolute coordinates" has a potential to improve RS-CNN, which may need a further exploration.
Question (2) will be responsed in next daytime.

(2) Note that the robustness to rotation that we claim in the paper is held in the high-level relation mapping M(h) in Eq. (2), when a suitable h is defined. However, the initial input features of 3D coordinates are still affected by rotation.
We address this issue by normalizing (include rotating) each sampled point subset to corresponding local coordinate system, which is determined by each sampled point and its normal. In this way, all the local point subsets are normalized to their corresponding local coordinate systems that can result in the invariance to rotation. Yet note that the accuracy drops a lot  because this forcible normalization could bring difficulty for shape recognition.
We have clarified this part in a paragraph titled with "Robustness to point permutation and rigid transformation" in Page 8.

Thank you for your kind explanation.
(1) This is interesting, and I would like to see if such normalization w.r.t a local centroid would affect the performance much. Besides, I wonder if RS-CNN would still perform well for the scene parsing task, where the spatial relations among different scene components play a critical role in the scene understanding. This could be an interesting future work.
(2) According to the experimental details you provide, I think RS-CNN cannot achieve intrinsic rotation invariance. It seems like the rotation invariance is indirectly achieved by normalizing the local patches with the aid of normal vectors. If the normal vectors are unavailable, such normalization could be difficult. And from the comparison with PointNet++, I found that, the decreased performance of PointNet++ w.r.t to the rotation angle is caused by its use of absolute coordinates (i.e., the FPS sampled centroid points, which are input to the MLP). In contrast, RS-CNN does not use such coordinates and thus achieves the invariance. Maybe you could further validate rotation invariance by directly testing RS-CNN on the raw point clouds without performing such patch normalization.
Recently I found one work which attempts to solve the rotation invariance, which is based on spherical convolution: "PRIN: Pointwise Rotation-Invariant Networks".

Thank you for your kind explanation.
(1) This is interesting, and I would like to see if such normalization w.r.t a local centroid would affect the performance much. Besides, I wonder if RS-CNN would still perform well for the scene parsing task, where the spatial relations among different scene components play a critical role in the scene understanding. This could be an interesting future work.
(2) According to the experimental details you provide, it seems like RS-CNN itself cannot achieve intrinsic rotation invariance due to the input 3D coordinates. From your solution to overcoming this issue, I am worried if the normal vectors are unavailable, such normalization could be difficult.
Interestingly, from the comparison with PointNet++, I found that, the decreased performance of PointNet++ w.r.t to the rotation angle is also caused by its use of absolute coordinates (i.e., the FPS sampled centroid points, which are input to the MLP).
Recently I found one work which attempts to solve the rotation invariance, which is based on spherical convolution: "PRIN: Pointwise Rotation-Invariant Networks". But the proposed method in this work does not perform well when the input shapes are aligned to canonical position.

(1) In my opinion, RS-CNN could do better in high-level shape identification from an object represented by irregular points, than in the whole scene parsing. The reason is that I think the low-level geometric relations are more suitable for capturing the spatial layout of 3D points than capturing the underlying dependencies among scene components. Of course, I agree with you that the relation learning method (RS-Conv) proposed in this paper could provide an inspiration for scene parsing :D
(2) Yes. The robustness to rotation we claim is in the relation learning, and it can be achieved only when the predefined relation is rotation invariant.
The intrinsic rotation invariance is a promising and challenging problem. Most existing methods achieve the robustness rather than the invariance. I speculate that the invariance could be achieved by some  mappings which is of information lossless. Besides PRIN you mentioned, my friend did a work called "Spherical Fractal Convolution Neural Networks for Point Cloud Recognition", which is also an excellent  exploration.

I agree that intrinsic rotation invariance is a promising and challenging problem. In fact, I don't quite understand why some so-called expert reviewers (for CVPR/NIPS etc conferences) consider achieving rotation invariance to be an easy and trivial task...
I found your friend's work quite interesting. Thank you for such a wonderful reference.

(2) Note that the robustness to rotation that we claim in the paper is held in the high-level relation mapping M(h) in Eq. (2), when a suitable h is defined. However, the initial input features of 3D coordinates are still affected by rotation.
We address this issue by normalizing (include rotating) each sampled point subset to corresponding local coordinate system, which is determined by each sampled point and its normal. In this way, all the local point subsets are normalized to their corresponding local coordinate systems that can result in the invariance to rotation. Yet note that the accuracy drops a lot, because this forcible normalization could bring difficulty for shape recognition.
We have clarified this part in a paragraph titled with "Robustness to point permutation and rigid transformation" in Page 8.

Thanks for your inspiring work and the explanation of the rotation invariance property. However, I'm wondering how the local coordinate system can be defined using the sampled point and its normal. One naive way I can imagine is to use the sampled point as (0,0,0) and the normal as one coordinate axis. However, it is still not enough to build a coordinate system. Could you please give more details of the approach? Thank you so much!


MA-3060 Removed Open in Browser button in the video player

Description
MA-3060
Before/After: (icon on bottom right)

Current coverage is 22.48% (diff: 100%)

Merging #879 into master will decrease coverage by 0.01%

@@             master       #879   diff @@
==========================================
  Files           684        684
  Lines         57376      57362    -14
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits          12908      12897    -11
+ Misses        44468      44465     -3
  Partials          0          0

Powered by Codecov. Last update d706a4a...97cdeb6


Add --skip-view flag to lotus generate action

Adding --skip-view flag when generating a new action prevents the view and the template (and the view spec) from being generated too. This can be useful when developing a JSON api that uses no views or templates.
Example usage:
bundle exec lotus generate action api users#get --skip-view
Implements the feature requested in #201

except above comment, it is :+1: from me

@joneslee85 done :)

@joneslee85 @mvader one thing about this. If you skip the view, then you have to force "self.body = something" in the action because it will produce an error, isn't it?

@AlfonsoUceda Good point. :+1: This will make the dev experience more pleasant by: 1. avoiding a Rack::Lint error 2. giving a hint on where to set the body response.
@mvader Can you please enhance with a new PR? Thank you very much.

@jodosha @AlfonsoUceda What solution would you prefer: forcing self.body to something in a special action template when there is no view or creating the view and just not creating the template?
I mean, I personally use views to render my JSON API since the json formatting shouldn't be a responsibility of the action but maybe people want to use self.body.
I could implement both if you like it. For example, --skip-view would use the self.body solution and ````--skip-template``` would just not create the template.
What do you guys think?

@mvader I'd say self.body = "OK". Simple enough.

@jodosha cool, I'll make a PR later today with this.


(node) warning: possible EventEmitter memory leak detected. 11 disconnected listeners added

Hello,
any help would be appreciated regarding following issue
I'm using express and node 4.4.6 and this is how I've initialized the module:
var opts = {     host: app.config.get('redis_host'),     port: parseInt(app.config.get('redis_port') || '6379', 10),     prefix: app.config.get('express_redis_cache_prefix') || 'colucommunity:cache:'   }   console.log('cache options', opts)   app.cache = require('express-redis-cache')(opts)   app.use(function(req, res, next) {     res.use_express_redis_cache = app.config.get('express_redis_cache_enabled') === 'true'     next()   })   app.cache.on('connected', function() {     console.log('Cache is connected !')     cb()   })   app.cache.on('disconnected', function() {     console.warn('Cache is disconnected !')   })   app.cache.on('error', function(err) {     console.error('Cache error:', err)   })   app.cache.on('message', function(msg) {     console.log('Cache message:', msg)   })
than on our server I get following error in log (I don't get that locally on my laptop):
 » 21 Mar 2017 17:52:25.187 (node) warning: possible EventEmitter memory leak detected. 11 disconnected listeners added. Use emitter.setMaxListeners() to increase limit. » 21 Mar 2017 17:52:25.187 at ExpressRedisCache.addListener (events.js:239:17) » 21 Mar 2017 17:52:25.187 at expressRedisCache_Middleware (/var/app/current/node_modules/express-redis-cache/lib/ExpressRedisCache/route.js:94:14) » 21 Mar 2017 17:52:25.187 at Layer.handle (/var/app/current/node_modules/express/lib/router/layer.js:95:5) » 21 Mar 2017 17:52:25.187 at Layer.wrapped (/var/app/current/node_modules/newrelic/lib/transaction/tracer/index.js:184:28) » 21 Mar 2017 17:52:25.187 at Layer.wrappedLayerHandleRequest [as handle_request] (/var/app/current/node_modules/newrelic/lib/instrumentation/express.js:364:14) » 21 Mar 2017 17:52:25.187 at next (/var/app/current/node_modules/express/lib/router/route.js:137:13) » 21 Mar 2017 17:52:25.188 at wrapped (/var/app/current/node_modules/newrelic/lib/transaction/tracer/index.js:184:28) » 21 Mar 2017 17:52:25.188 at cleanup (/var/app/current/node_modules/newrelic/lib/instrumentation/express.js:377:54) » 21 Mar 2017 17:52:25.188 at allowCache (/var/app/current/modules/global.js:774:7) » 21 Mar 2017 17:52:25.188 at Layer.handle (/var/app/current/node_modules/express/lib/router/layer.js:95:5) » 21 Mar 2017 17:52:25.188 at Layer.wrapped (/var/app/current/node_modules/newrelic/lib/transaction/tracer/index.js:184:28) » 21 Mar 2017 17:52:25.188 at Layer.wrappedLayerHandleRequest [as handle_request] (/var/app/current/node_modules/newrelic/lib/instrumentation/express.js:364:14) » 21 Mar 2017 17:52:25.188 at next (/var/app/current/node_modules/express/lib/router/route.js:137:13) » 21 Mar 2017 17:52:25.188 at Route.dispatch (/var/app/current/node_modules/express/lib/router/route.js:112:3) » 21 Mar 2017 17:52:25.188 at Layer.wrappedHandle (/var/app/current/node_modules/newrelic/lib/instrumentation/express.js:598:19) » 21 Mar 2017 17:52:25.188 at dispatch (eval at wrapHandle (/var/app/current/node_modules/newrelic/lib/instrumentation/express.js:1:0), <anonymous>:4:28) » 21 Mar 2017 17:52:25.188 at Layer.handle (/var/app/current/node_modules/express/lib/router/layer.js:95:5) » 21 Mar 2017 17:52:25.188 at Layer.wrapped (/var/app/current/node_modules/newrelic/lib/transaction/tracer/index.js:184:28) » 21 Mar 2017 17:52:25.188 at Layer.wrappedLayerHandleRequest [as handle_request] (/var/app/current/node_modules/newrelic/lib/instrumentation/express.js:364:14) » 21 Mar 2017 17:52:25.188 at /var/app/current/node_modules/express/lib/router/index.js:281:22 » 21 Mar 2017 17:52:25.188 at param (/var/app/current/node_modules/express/lib/router/index.js:354:14) » 21 Mar 2017 17:52:25.188 at param (/var/app/current/node_modules/express/lib/router/index.js:365:14)

Same error here! Any help would be priceless.

@danielmontenegro does this occur on your local environment? for me it's just on AWS

Ok, so I think I narrowed down a little bit.
If I use loadtest -n 100 -c 20 http://local.mycompany.com:8888/api/test and test is using cache than I get the above warning.
If I comment-out:
self.on('disconnected', function () {   return next(); });
The warning does not happen anymore

@LiorRabin thanks a lot, your solution helps.

I just experienced this memory leak in production, pretty rapidly increasing RAM usage on one of our high-load servers. #86 fixed it—saved me a ton of time debugging, thanks! 🙏

@LiorRabin
self.on('disconnected', function () { return next(); });
Prevents the request from staling(request timeout) if disconnect happens while fetching from redis.
Instead of commenting it out why not use on-finished  and remove the event-listener.

fixed by #86 so closing the issue


How to use with Laravel?

Hello, I see you've updated this wonderful idea to work with php 8.2
How do I use it with laravel?

Hi @inmanturbo,
to use it with Laravel, you can just install it like you would usually do (more instructions in the README.md file and in the Implicit Aspects Section or the Explicit Aspects Section if you want to add custom Aspects to your own classes)

Install the package: composer require okapi/aop
Create the Kernel.php file in your new app/Aop folder with following contents:

<?php

namespace App\Aop;

use App\Aop\Aspects\DiscountAspect;
use Okapi\Aop\AopKernel;

class MyKernel extends AopKernel
{
    // Define a list of your custom aspects
    protected array $aspects = [
        DiscountAspect::class,
    ];
}

Create your advices in the app/Aop/Aspects folder, e.g. DiscountAspect.php:

// Discount Aspect

<?php

namespace App\Aop\Aspects;

use Okapi\Aop\Attributes\Aspect;
use Okapi\Aop\Attributes\After;
use Okapi\Aop\Invocation\AfterMethodInvocation;

// Aspects must be annotated with the "Aspect" attribute
#[Aspect]
class DiscountAspect
{
    // Annotate the methods that you want to intercept with
    // "Before", "Around" or "After" attributes
    #[After(
        // Use named arguments
        // You can also use Wildcards (see Okapi/Wildcards package)
        class: Product::class . '|' . Order::class,
        method: 'get(Price|Total)',
    )]
    public function applyDiscount(AfterMethodInvocation $invocation): void
    {
        // Get the subject of the invocation
        // The subject is the object class that contains the method
        // that is being intercepted
        $subject = $invocation->getSubject();

        $productDiscount = 0.1;
        $orderDiscount   = 0.2;

        if ($subject instanceof Product) {
            // Get the result of the original method
            $oldPrice = $invocation->proceed();
            $newPrice = $oldPrice - ($oldPrice * $productDiscount);

            // Set the new result
            $invocation->setResult($newPrice);
        }

        if ($subject instanceof Order) {
            $oldTotal = $invocation->proceed();
            $newTotal = $oldTotal - ($oldTotal * $orderDiscount);

            $invocation->setResult($newTotal);
        }
    }
}

But where to register or initialize the Kernel? If I add it to a service provider or bootstrap/app.php I just get an error:
  The singleton instance of App\Aop\Kernel has already been initialized.

// Initialize the AOP Kernel
$kernel = App\Aop\Kernel::init();

Otherwise, if I do not add it, the kernel is just ignored and I get no errors and no applied advice

I should say, I see it working now in the browser, with the kernel initialized in bootstrap/app.php, but I am only getting the error in the terminal, when trying to run tests.

You're right, I missed that, sorry.
bootstrap/app.php is a good location, best to place it is after the include "../vendor/autoload.php" statement of the application life cycle (Before the code you want to intercept).
If you receive the error only when you run the tests, make sure your code doesn't call Kernel::init() twice.

Strangely, if I put it directly in public/index.php, right after require __DIR__.'/../vendor/autoload.php'; it continues to work in the browser but doesn't cause any errors in the test. No code is intercepted in the tests either though. It could have something to do with how orchestra builds the application.
In any case, the code doesn't call Kernel::init() more than the one time: there are no calls to it during tests or the test setup.
Here are my chages to a fresh jetstream project with livewire stack:
index.php:
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| this application. We just need to utilize it! We'll simply require it
| into the script here so we don't need to manually load our classes.
|
*/

require __DIR__.'/../vendor/autoload.php';

+$aopKernel = App\Aop\Kernel::init();

app/Aop/Kernel.php:
<?php

namespace App\Aop;

use App\JetstreamAspect;
use Okapi\Aop\AopKernel;

// Extend from the "AopKernel" class
class Kernel extends AopKernel
{
    // Define a list of aspects
    protected array $aspects = [
        JetstreamAspect::class,
    ];
}

app/JetstreamAspect.php:
<?php

namespace App;

use App\Actions\Fortify\CreateNewUser;
use Okapi\Aop\Attributes\Aspect;
use Okapi\Aop\Attributes\After;
use Okapi\Aop\Invocation\AfterMethodInvocation;

// Aspects must be annotated with the "Aspect" attribute
#[Aspect]
class JetstreamAspect
{
    // This method will be executed after the "create" method of the "App\Actions\Fortify\CreateNewUser" class
    #[After(
        class: CreateNewUser::class,
        method: 'create',
    )]
    public function afterCreate(AfterMethodInvocation $invocation)
    {
        // testing various intercepts here
       // register as new user in the browser to see this code run
       // I expect this to die and dump after this method is called during the RegistrationTest
        dd('executed after the "create" method of the "App\Actions\Fortify\CreateNewUser" class');
    }
}

hi @inmanturbo
have you successfully setup it on laravel application?
when I add the kernel::init on the bootstrap/app.php just before return the $app, it was working but got some error Cannot declare class App\Aop\MyKernel, because the name is already in use when I tried to run the php artisan config:cache
thank you

This error is often from a mismatch from file name to class name. Is your file called 'Kernel.php' or 'MyKernel.php' ?

This error is often from a mismatch from file name to class name. Is your file called 'Kernel.php' or 'MyKernel.php' ?

my mistake.. thank you

Hi @inmanturbo, sorry for the late response, I will test it now with a fresh Laravel Jetstream installation.

@inmanturbo I have found the problem. bootstrap/app.php should be the file where you add your kernel, also it does seem like the test framework bootstraps the application multiple times. In that case you can add an if check to the bootstrap/app.php file like this:
if (!\App\Aop\Kernel::isInitialized()) {
    \App\Aop\Kernel::init();
}

I will add an option in the future to ignore an already initialized kernel and make it the default behaviour!

Hi @akelalix,
you don't have to require the class
$path = realpath(DIR.'/..') . '/app/Aop/MyKernel.php';
require($path);

because bootstrap/app.php will be executed right after require __DIR__.'/../vendor/autoload.php'; and it should automatically autoload all your classes.
In case PHP still doesn't know about your MyKernel.php file, try to run the composer dump-autoload command in your terminal.

if (!\App\Aop\Kernel::isInitialized()) {
\App\Aop\Kernel::init();
}

Thank you @WalterWoshid .
I-remove the require then use the suggested
if (!\App\Aop\MyKernel::isInitialized()) {     \App\Aop\MyKernel::init(); }
Thanks again

I have added the $throwExceptionOnDoubleInitialization option to the CodeTransformerKernel (which is extended by the AopKernel) and the default value is set to false which makes it ignore subsequent init() calls. By running composer update in your project, you should be able to use it without any changes and can also remove this code:
if (!\App\Aop\Kernel::isInitialized()) {
    \App\Aop\Kernel::init();
}

Hello
It works fine with php 8.2, laravel 10.18 and php-aop 1.2.3 :-)
With first lines of bootstrap/app.php as:
<?php

use App\Aop\Kernel as AopKernel;
AopKernel::init();
...


Update submodule?

Will you update your bootstrap submodule? Thanks for the good work.

Hey thanks.  Here's the update.
As a note your previously variables file will likely be incompatible with the new version.
4436a486b19495d08005617ee05f9f65f08ef04b


cl21 cl22: Lost patch - Khronos Bug 15271 allocations test doesn't check if all events on the wait list are valid

Present only on cl20 branch. Lack in cl21 and cl22

Merged all PRs.


support emptyDir in tiedstore volumeSource

Ⅰ. Describe what this PR does
support https://github.com/fluid-cloudnative/fluid/issues/3455
Ⅱ. Does this pull request fix one issue?

support https://github.com/fluid-cloudnative/fluid/issues/3455
Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

/test fluid-e2e


Switch to charmbracelet/log

Add SOFT_SEVE_DEBUG to toggle debug log level

Codecov Report

Merging #217 (792ec31) into main (f227b4c) will decrease coverage by 0.03%.
The diff coverage is 8.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main     #217      +/-   ##
==========================================
- Coverage   37.01%   36.98%   -0.03%
==========================================
  Files          47       47
  Lines        4439     4442       +3
==========================================
  Hits         1643     1643
- Misses       2700     2702       +2
- Partials       96       97       +1

Impacted Files
Coverage Δ

cmd/soft/root.go
44.00% <0.00%> (ø)

cmd/soft/serve.go
0.00% <0.00%> (ø)

config/auth.go
63.15% <0.00%> (ø)

config/config.go
57.69% <0.00%> (ø)

examples/setuid/main.go
0.00% <0.00%> (ø)

server/server.go
66.66% <0.00%> (ø)

server/config/config.go
52.63% <16.66%> (-9.87%)
:arrow_down:

config/git.go
41.39% <50.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Lint is failing https://github.com/golangci/golangci-lint-action/issues/677


Contents from custom fields deleted from the production theme when perform yarn deploy (v1.x)

Problem
yarn deploy remove all the contents from my production theme where I integrated my real data.
Maintenance will be almost infeasible if I have to reintegrate all the contents on the production theme every time I push something new.
Replication steps

yarn deploy => production theme.
Customer begin to integrate some data.
yarn deploy => production theme.
Customer data is gone.

More Information
I've tried an experiment to understand how Shopify work with it's custom content:

Put a section into a static page.
Add content in the section.
Remove the section from the static page, the content is gone.
Put back the same section into the same static page, the original content is back.

At that moment I was thinking that the data from the database is linked to the section file. So, I try something new:

Put a section into a static page.
Add content in the section.
Remove the section from the static page, the content is gone.
Delete the section file completely from the theme from the Shopify admin.
Create a new section with the same name, same code, from the Shopify admin.
Put back the same section into the same static page, the original content is back.

Do I miss something with the deploy options to not have a "from scratch" production theme when I deploy? if not, if there a workaround to keep my contents?

@AntoineGrenier I think you're describing the expected behaviour of the settings_data.json file.  That's where the information is saved for each section.
Based on your description of taking a section out and putting it back, it sounds like you're only ever removing the HTML from the editor.  Assuming the identifier in the json object of settings_data.json stays the same, when you add the section back it's going to be able to reference those same values.
Regarding the yarn commands: If your information is being removed on deploy, then perhaps you're aways uploading your local settings_data.json file which has no information in it.  Example:
https://github.com/Shopify/slate/blob/41b3269ff7164e9193aeb758a10554527dbb318f/packages/slate-theme/config-sample.yml#L21

Thank you! That answer my question.


database structure updated

Checking directory: /home/ut/.local/share/osu
Run this application with your osu!lazer storage directory as an argument if this is not your osu! data location.
The osu!lazer database structure has updated since the last BeatmapExporter update.

You can check https://github.com/kabiiQ/BeatmapExporter/releases for a new release, or file an issue there to let me know it needs updating if it's been a few days.

I am unable to extract maps with both the GUI and the CLI versions of the app. I am currently running on Arch linux with the flatpak version of osu. The GUI launcher provides no errors and simply refuses to accept the directory for the files when called via my file browser.

Please make sure your osu!lazer is updated to version 2024.512.2.
If you did already update, this is probably related to a previous issue #12. It seems like the Linux version is sometimes behind on the database revision despite version numbers matching? If you could try to just use 2.0.0 or 2.1.0 pre-release instead: https://github.com/kabiiQ/BeatmapExporter/releases/tag/v2.1.0-pre3
I do see from the error message you posted that I made a change which stopped the exact error message with database version numbers being displayed, I will revert that change for future releases.

I see, my data was stored in the flatpak data storage area. It seems both the GUI and CLI versions work fine once I started pointing them to /home/[username]/.var/app/sh.ppy.osu/data/osu/ which is the flatpak data storage location. Thank you for the patience and assistance with this.


Add additional query-level metrics to db conventions

Fixes #723
Changes
Adding some additional query-level metrics to the database semantic conventions.
Added user.id and thread.id to the existing db.client.operation.duration metric.
Merge requirement checklist

[x] CONTRIBUTING.md guidelines followed.
[x] Change log entry added, according to the guidelines in When to add a changelog entry.

If your PR does not need a change log, start the PR title with [chore]

[x] schema-next.yaml updated with changes to existing conventions.

From DB stabilization WG meeting:
@dnaik-sfx: We discussed this, could you please break this PR up into multiple PRs? The rows returned related metrics are ones we likely would take. The other ones related to CPU usage and pages are more up for discussion. If you could have this is smaller PRs, it'd be easier to make progress.
In any case, we'd keep these metrics in experimental at this point.

From DB stabilization WG meeting:
@dnaik-sfx: We discussed this, could you please break this PR up into multiple PRs? The rows returned related metrics are ones we likely would take. The other ones related to CPU usage and pages are more up for discussion. If you could have this is smaller PRs, it'd be easier to make progress.
In any case, we'd keep these metrics in experimental at this point.

Sounds good; I've removed the non-row related metrics from this PR and put them in #1203 so that the two sets of metrics can be discussed separately.


Handle promote complete event to clean NFC

Add the handling for promote event. I add method 'canHandle' and changed the Inject so it can inject multiple handlers.

Let's hold this for a while before the 3.0.0 release.

LGTM

@ruhan1 You mean the KStream pairs? Kafka event has key, value, timestamp, and optional metadata headers.
It needs to predefine the property of parse.key and key.separator when producing, currently we don't need it so the default key is null, and just handle the event value to dispatch.

@ligangty @yma88 I have a question. The sender on promote service use below code : emitter.send(objectMapper.writeValueAsString(event)); There is no such think as 'key:value'. So in this case, what is the key and value for such event?

Cool. So I don't need an key object in my case. Thanks.


Add new SDL syntax

This is a big PR. The good news is that most of it consists of mirroring the existing SDL examples in the new syntax and marking the pre-3.0 syntax examples with :version-lt: 3.0.
Other stuff that's included:

making sure all the code blocks I touched are indented by 4 spaces
unwrapping "link" as inline code since the keyword is no longer required in SDL in most cases (in datamodel/links.rst for example)
adding descriptions of the new syntax in prose where that made sense
adding new 3.0 SDL synopses for links and properties
fixes for very minor unrelated issues I found

#New label switched to a versionadded directive in datamodel/constraints.rst "Partial constraints" heading
various other spacing fixes

Stuff that isn't included:

New SDL examples for the introspection guide

The introspection guide is being moved as part of #5157. I'm afraid of what the merge might be like if I also make changes to it in this PR, so I will circle back after that PR is merged to add new SDL examples there.

Updated SDL in other guides

Guides will not be versioned, so we will circle back to the few SDL samples in them and update them to the new syntax once 3.0 launches.

Not intimately familiar with the new SDL and doc formatting but I did go over every change and besides the one comment I wrote last week I didn't see anything that looked out of the ordinary!

This seems reasonable to me, though obviously all the duplication is pretty tragic.

Yeah, we went back and forth on this. @jaclarke started building something that would automatically update SDL syntax when the docs version selector was changed, but I believe that got complicated. We decided to do it the simple way in response to that, which caused the duplication but also gives us more control over what we want to display.
This had the positive side-effect of giving us a way to conditionally display different synopses across versions too which we would have needed anyway for cases like the addition of errmessage for access policies.

Is having only one master copy of the documentation actually a good idea??

I'm not sure what you mean here, @msullivan.

Just to confirm, only one copy of the blobs will get displayed on a page

Yes, that's right. The docs will only display one code-block per grouping based on the user's version selection.


Allow multiple transactions

Traceback (most recent call last):

  File "/usr/local/lib/python3.7/dist-packages/discord/ext/commands/core.py", line 63, in wrapped
    ret = await coro(*args, **kwargs)

  File "/home/futaba/repo/futaba/cogs/moderation/core.py", line 138, in mute
    ctx, member, minutes, PunishAction.RELIEVE_MUTE, reason

  File "/home/futaba/repo/futaba/cogs/moderation/core.py", line 81, in remove_roles
    self.bot.add_tasks(task)

  File "/home/futaba/repo/futaba/client.py", line 207, in add_tasks
    with self.sql.transaction():

  File "/home/futaba/repo/futaba/sql/handle.py", line 82, in transaction
    assert self.trans is None, "Already in a transaction"

AssertionError: Already in a transaction

Thanks @Ma-wa-re