"per user" queries

A frequent query we run for our dashboards is to get things as a % of users, to balance out the fact that we have different numbers of users each day, or slight differences between number of users on control/variant.
e.g.

CTR - % of users clicking on something
Clicks per user (as opposed to total clicks)

this is now addressed by kq '@ratio(cta->count()!/cta->count(user.uuid))->interval(d)'

... if I understand correctly that is

$ node ./bin/keen-query.js '@ratio(cta->count()!/cta->count(user.uuid))->interval(d)'
@ratio(cta->count()!/cta->count(user.uuid))->interval(d)->print(ascii)
cta->count()->interval(d)->print(json,ISO)
this_14_days
cta->count(user.uuid)->interval(d)->print(json,ISO)
this_14_days
..................
 .---------------------------------.
|   cta->count(): this_14_days    |
|---------------------------------|
| timeframe  |       values       |
|------------|--------------------|
| 2015-12-25 | 5.0420188360299445 |
| 2015-12-26 |   5.04783914952623 |
| 2015-12-27 |  5.955564532417694 |
| 2015-12-28 |  6.050989166274141 |
| 2015-12-29 |  6.139826327215315 |
| 2015-12-30 |  5.905625606207566 |
| 2015-12-31 | 5.4853772425657406 |
| 2016-01-01 |  5.893449937533465 |
| 2016-01-02 |  5.966434988981184 |
| 2016-01-03 |  5.682004555808656 |
| 2016-01-04 |  6.554981277358789 |
| 2016-01-05 | 6.1811015176704025 |
| 2016-01-06 |  6.149214377959535 |
| 2016-01-07 | 5.7853478586662055 |
'---------------------------------'

or maybe '@reduce(cta->count()->interval(d)->group(user.uuid)->flip(),median)'

Needs @filter(q, >12)

... although there are so many uuids that keen can't handle queries grouped by user.uuid in general. Probably better to redshift this sort of thing

Yup good point, the dashboards we have at the moment for them tend to be
very slow.
On 8 January 2016 at 11:45, Rhys Evans<EMAIL_ADDRESS>wrote:

... although there are so many uuids that keen can't handle queries
grouped by user.uuid in general. Probably better to redshift this sort of
thing
—
Reply to this email directly or view it on GitHub
https://github.com/Financial-Times/keen-query/issues/7#issuecomment-169974836
.

--

This email was sent by a company owned by Financial Times Group Limited
("FT Group http://aboutus.ft.com/corporate-information/#axzz3rajCSIAt"),
registered office at Number One Southwark Bridge, London SE1 9HL.
Registered in England and Wales with company number 879531. This e-mail may
contain confidential information. If you are not the intended recipient,
please notify the sender immediately, delete all copies and do not
distribute it further.  It could also contain personal views which are not
necessarily those of the FT Group.  We may monitor outgoing or
incoming emails as permitted by law.

Maybe the spreadsheet aliases should be able to refer to redshift queries
as well as keen?
On 8 January 2016 at 11:48, Arjun Gadhia<EMAIL_ADDRESS>wrote:

Yup good point, the dashboards we have at the moment for them tend to be
very slow.
On 8 January 2016 at 11:45, Rhys Evans<EMAIL_ADDRESS>wrote:

... although there are so many uuids that keen can't handle queries
grouped by user.uuid in general. Probably better to redshift this sort of
thing
—
Reply to this email directly or view it on GitHub
https://github.com/Financial-Times/keen-query/issues/7#issuecomment-169974836
.

--

This email was sent by a company owned by Financial Times Group Limited
("FT Group http://aboutus.ft.com/corporate-information/#axzz3rajCSIAt"),
registered office at Number One Southwark Bridge, London SE1 9HL.
Registered in England and Wales with company number 879531. This e-mail may
contain confidential information. If you are not the intended recipient,
please notify the sender immediately, delete all copies and do not
distribute it further.  It could also contain personal views which are not
necessarily those of the FT Group.  We may monitor outgoing or
incoming emails as permitted by law.

Excellent idea!

see #74


Settings extensions page table doesn’t scroll

Issue:
settings extensions page table doesn’t scroll. Darius mentioned we may need to disable extensions entirely for ios, reference -> https://github.com/Satellite-im/Uplink-Deprecated/issues/457
Screenshot:

still happens
a quick fix would just be listing the buttons in the vertical instead also, is easier to use and is prettier vs the horizontal one

i meant these buttons


wip(module:list): add list component

add third libs with share.module

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md#commit
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Application (the showcase website) / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?
[ ] Yes
[x] No

Other information

Coverage decreased (-2.8%) to 95.345% when pulling fb4629c8b80a5fd78d2d93ced3cdb2b688ab663d on cipchk:list into bb7b63d69cfcb23e81585f8ab61b638ef275ed08 on NG-ZORRO:0.7.0.


New [EfCoreConverter] doesn't seems to work

Describe the bug
Hi Steve,
I'm trying to use the new option to generate EfConverters on a different library, followed the steps, and got... nothing.
Steps to reproduce
I have one project with all my VOs. I removed from "conversions" the Conversions.EfCoreValueConverter. Created a new project, added a public partial class and decorated it with [EfCoreConverter<....>] (and of course, added Vogen to the packages)... And nothing happens.
Rider shows the "partial" keyword as not used, and nothing gets generated.
Expected behaviour
Something has to be generated.
Am I using this feature in the wrong way?

Hi @CheloXL - thanks for the bug report. Are you targetting .NET 8?

I think I've found the problem. The EfCoreConverter<> attributes are not being picked up unless there's one ValueObject<> attribute in the project!

I'm doing a fix now, but a workaround is put a dummy value object in the project, e.g. [ValueObject]  public partial class _;

Perfect. Thanks.. yes, I found that placing the partial class in the same project did work. One thing while you are at this.. can you remove the "public" keyword from the partial class? I want to have that class internal and only access it through an extension method that does all the registrations.

On another note... and this is outside the scope of this, but would be a nice-to-have feature "included" within this one: If you can add a static method like the following one that auto-adds/removes registrations based on the attributes used to decorate the class, that would be awesome, as I can register all VOs at once. (VogenEfCoreConverters is the class that both holds the method and have the EfCoreConverter attributes).
public static ModelConfigurationBuilder AddVogenConversions(this ModelConfigurationBuilder configurationBuilder)
{
	configurationBuilder.Properties<InstallationId>().HaveConversion<VogenEfCoreConverters.InstallationIdEfCoreValueConverter, VogenEfCoreConverters.InstallationIdEfCoreValueComparer>();
	configurationBuilder.Properties<CountryId>().HaveConversion<VogenEfCoreConverters.CountryIdEfCoreValueConverter, VogenEfCoreConverters.CountryIdEfCoreValueComparer>();
	.... more configurations based on the attributes...
	return configurationBuilder;
}

Another issue I just found... if I don't name the class "EfCoreConverters", the project doesn't compile. Seems that you have the class name hardcoded in some places (because the partial class is correctly created, but then you reference a class named as noted instead of using the name of the class the user defined).

can you remove the "public" keyword from the partial class?

I've changed this so that it takes on the accessibility of the declaring class, e.g.
internal partial class Converters generates all other partial implementations as internal. Same for public.
Each inner class that represents the converter is public. I suppose we could limit the accessibility to that so that they're not accessible from outside of the Converters class.

Re. ModelConfigurationBuilder. I'm taking a look at that now. I'm not familiar with it, so I browsed the documentation. I can see this:
    /// <summary>
    ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
    ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
    ///     any release. You should only use it directly in your code with extreme caution and knowing that
    ///     doing so can result in application failures when updating to a new Entity Framework Core release.
    /// </summary>

I understand that it might be useful for you, but I'm curious to see if it's commonly used by the efcore community. I'm wary of having to change the generator to keep track with changes in efcore...

I've got an initial implementation of this working. It adds an extension method like this:
  internal static class EfCoreConverters__Ext
  {
      internal static global::Microsoft.EntityFrameworkCore.ModelConfigurationBuilder RegisterAllInEfCoreConverters(this global::Microsoft.EntityFrameworkCore.ModelConfigurationBuilder configurationBuilder)
      {
        configurationBuilder.Properties<Domain.Id>().HaveConversion<UsingTypesGeneratedInTheSameProject.EfCoreConverters.IdEfCoreValueConverter, UsingTypesGeneratedInTheSameProject.EfCoreConverters.IdEfCoreValueComparer>();
configurationBuilder.Properties<Domain.Name>().HaveConversion<UsingTypesGeneratedInTheSameProject.EfCoreConverters.NameEfCoreValueConverter, UsingTypesGeneratedInTheSameProject.EfCoreConverters.NameEfCoreValueComparer>();
configurationBuilder.Properties<Domain.Age>().HaveConversion<UsingTypesGeneratedInTheSameProject.EfCoreConverters.AgeEfCoreValueConverter, UsingTypesGeneratedInTheSameProject.EfCoreConverters.AgeEfCoreValueComparer>();
configurationBuilder.Properties<Domain.Department>().HaveConversion<UsingTypesGeneratedInTheSameProject.EfCoreConverters.DepartmentEfCoreValueConverter, UsingTypesGeneratedInTheSameProject.EfCoreConverters.DepartmentEfCoreValueComparer>();
configurationBuilder.Properties<Domain.HireDate>().HaveConversion<UsingTypesGeneratedInTheSameProject.EfCoreConverters.HireDateEfCoreValueConverter, UsingTypesGeneratedInTheSameProject.EfCoreConverters.HireDateEfCoreValueComparer>();

        return configurationBuilder;
      }
  }

The naming convention is RegisterAllIn[NameOfConverterTarget], e.g. RegisterAllInEfCoreConverters for the declaration
[EfCoreConverter<Id>]
[EfCoreConverter<Name>]
[EfCoreConverter<Age>]
[EfCoreConverter<Department>]
[EfCoreConverter<HireDate>]
internal sealed partial class EfCoreConverters;

I should be able to release this tomorrow.

I understand that it might be useful for you, but I'm curious to see if it's commonly used by the efcore community. I'm wary of having to change the generator to keep track with changes in efcore...

ModelConfigurationBuilder is what you get on the protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder) in a DbContext. Not sure from where you got that documentation, but I have:
// <summary>
///     Provides a simple API surface for setting defaults and configuring conventions before they run.
/// </summary>

ConfigureConventions is where I usually do global configuration in EfCore.

This is where I found the documentation (via SourceLink). I can see it's a slightly older version though, so it might've changed:

Ahh.. but those comments refer to those specifics methods/properties (ctor, ModelConfiguration)... Basically, all of the ones decorated with [EntityFrameworkInternal]. The class itself and the public methods are used to let you configure the DbContext. See ConfigureConventions

@SteveDunn I think this should be reopened, when I create a marker class like so:
[EfCoreConverter<Domain.GameId>]
internal partial class VogenEfCoreConverters;

it fails, as it can't find 'EfCoreConverters'
However, when I make the marker class that name it all works...
[EfCoreConverter<Domain.GameId>]
internal partial class EfCoreConverters;

Let me know if you need a minimal repro repo :)

Hi @Hona - many thanks for the bug report. Apologies for this. I found a few places where this name was hardcoded.
I've fixed that and I'm prepping a release now. Should be an hour or so.
Thanks again!

Appreciate that @SteveDunn
It's low priority, but love your work

This is in 4.0.15 - will be on NuGet shortly


Don't sync full .rh directory to OnDemandCluster.

#782  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @rohinb2 and the rest of your teammates on  Graphite


PackageScanResolverProcessor may not unregister associated ContextCreateHandler

I think we have a flaw in the way in which a ContextCreateHandler associated with a PackageScanResolverProcessor is unregistered.
DUPs are singletons. Therefore, any instance variables set during deployment processing are liable to be overwritten each time something is deployed to the container. For the PackageScanResolverProcessor, this is problematic because the unregistering of the ContextCreateHandler depends on the correct instance being available.
This wont be the case in the following scenario:

Deploy Application A
Deploy Application B
Undeploy Application A
Undeploy Application B

A simple test case proves this (E.g Application A tries to unregister the wrong handler):
(MSC service thread 1-13) APPLICATION_A.jar :: deploy() - Created ContextCreateHandler: org.wildfly.extension.camel.handler.PackageScanClassResolverAssociationHandler@20277dd6
(MSC service thread 1-5)  APPLICATION_B.jar :: deploy() - Created ContextCreateHandler: org.wildfly.extension.camel.handler.PackageScanClassResolverAssociationHandler@5c06ddae
(MSC service thread 1-11) APPLICATION_A.jar :: undeploy() - Trying to unregister ContextCreateHandler: org.wildfly.extension.camel.handler.PackageScanClassResolverAssociationHandler@5c06ddae
(MSC service thread 1-10) APPLICATION_B.jar :: undeploy() - Trying to unregister ContextCreateHandler: org.wildfly.extension.camel.handler.PackageScanClassResolverAssociationHandler@5c06ddae

Yes, DUPs are supposed to associate obj instances that they need to reference during undeploy with the DU.

So instead of an instance variable, we can add the ContextCreateHandler as an attachment on the DU , which can then be retrieved on undeploy?


Disable min and max values

Steps to reproduce
Create a new range slider
Expected behaviour
Is there a way to show the current minimum value selected and current maximum value selected at the left and right instead of showing them above the bubbles, and showing nothing above to the bubbles ?

Yes just use custom CSS.

Ok thanks, there is no way like passing a parameter to the directive telling that I don't want those values ?

Oh sorry I didn't see you were asking for that, yes there is one option for this in the documentation.

Hello,
Sorry to reopen the issue, what I need exactly is this : A slider without values above the bubbles like in this image :

And when I move the right bubble, the right number updates on the right like in this image :

Thanks

You can trick this by implementing your custom logic in the translate function.


Export to webm

Use the MediaRecorder API to record the canvas and produce a .webm file.

I'm pivoting this project to a general diagramming tool so there is no need for this feature anymore. Sorry!


Add support for enabling/disabling the new spatial voice feature

Config:
target:
  experience:
    configuration:
      spatialVoiceEnabled: true # defaults to `false`

This is managed via a separate API surface so it will need a new resource type under the hood:

Resource type: spatialVoiceConfiguration
Create/update: POST https://voice.roblox.com/v1/settings/universe/{experienceId}

JSON body { "optIn": boolean }

Delete: update to be disabled
Import: GET https://voice.roblox.com/v1/settings/universe/{experienceId}

JSON body { "isUniverseEnabledForVoice": boolean }

The design of the roblox API suggests to me that there will be more settings in the future for how spatial voice is configured. Until then I think this API is fine, but in the future we might refactor to something like:
target:
  experience:
    spacialVoice:
      enabled: true
      someOtherSetting: false

From reading the dev forum thread about this I noticed:

We would like to announce that from today Spatial Voice is supported in places with up to 50 Max Players, previously Spatial Voice was limited to places with up to 30 Max Players.

I'm assuming this will be managed by a server-side error message which we should make sure to test for.

I'd like to use the second API described above to avoid potential breaking changes if we do need to expand it in the future

Although the endpoints are undocumented I noticed that there are v2 and v3 sections in the voice API service docs: https://voice.roblox.com/docs#!/v1
I got the endpoints described in the issue a long time ago and I may need to update to these newer APIs.


Create Github pull request template in cci project init

We should prepopulate the project with a .github/PULL_REQUEST_TEMPLATE.md file like this but possibly with better instructions included in the template:
https://github.com/SalesforceFoundation/Cumulus/blob/master/.github/PULL_REQUEST_TEMPLATE.md

We did this.


AP-3965 Vault fetch

Changes
Script utility for fetching secrets from provided vault instance + merging them into configured .env file.
Checklist

[x] Apply one of following labels; major, minor, patch or skip-release
[x] I've updated the documentation, or no changes were necessary
[x] I've updated the tests, or no changes were necessary

@kamilwylegala could you please add the release workflow as we have for the other libs 🙏? You can take the others as examples and let me know if you have problems

Sure. let me check what it is about.

Outstanding! Thank youuu 🙌


The drop down menu for 'type' does not have more than 5 options

I see in the video that the dropdown menu for type contains many more options such as 4 options for  DATE & TIME, 4 options for NUMERIC, etc.
I only see these options for type: Text, Numeric, Integer, Real, None.
I'd like to be able to choose DATE
Please advise
using chrome, sqlite, ad block diabled

I see that it is a chrome issue, as more of the dropdown options for type are showing in Firefox.
However cookies for the site are enabled.

The data type selection is database-specific, so you will see different data types available for different database types. In your case, SQLite has only five data types (fun fact: those are not real data types; instead, SQLite uses the concept of data affinity). If you switch your DB to a different one, reload the app and start a new design, you should see a different data type set.
Sanity check: open the blank wwwsqldesigner page using a private browsing window. You should see the default (MySQL) data type selection.


silky-letter-insa:0.2.2, silky-report-insa:0.4.0 and silky-slides-insa:0.1.1

I am submitting

[ ] a new package
[x] an update for a package

Description:

Added assets from another school (INSA CVL) to the 3 packages
Reduced size of assets
Removed homepage from typst.toml

Thanks!


fix: downgrade scalajs as build started to fail randomly since 1.15.0

I tried locally with a higher minSuccessful scalacheck config and it fails whatever the scalajs version, so downgrade is not a solution.


“Confirm Phone Number” button becomes “ Add cUSD” when the user taps on the “Learn More” button from the “Welcome to CELO Rewards” page.

Frequency: 100%
Repro on build version: Android Internal Build V 1.10.1(1004294336) & Test Flight Build V1.10.1(46).
Does not repro version  Android Internal Build V 1.10.0(1004294335) & Test Flight Build V1.10.0(45).
Repro on devices: Samsung Galaxy A5(7.0), iPhone XR(14.2)
Testing Account:<PHONE_NUMBER>/ Backup Key
Repro Steps:

Launch the application & login with a test account.
Tap on “Earn Rewards” pills.
Now users should be on the “Welcome to CELO Rewards” page with the “Confirm Phone Number” & “Learn More” button.
Now tap on “Learn More” & scroll down.
Observed that,
Current Behavior:  “Add cUSD” button displayed.
Expected Behavior:  “Confirm Phone Number” button should be displayed.
Investigation: Also we have observed this issue when user not givr number while login.
Impact: Users able to proceed further to Earn rewards even phone numbers are not verified.
Attachment: ConfirmPhoneNumberButtonShouldDisplay.mp4[issue observed at 0.36 sec]

Hi I have verified this issue using latest latest  play store build V1.10.1 & App store build V1.10.1 & observed that issue is still reproduced.
Repro on devices: Samsung Galaxy A5(7.0), iPhone XR(14.2)

Hi I have verified this issue using latest Android internal build V1.11.1(1004294338) & Test Flight Build V1.11.1(48) & observed following:
Observations:

In latest version Send mail field is displayed instead of Confirm Phone Number button when user taps on "Learn More" button. Is it expected ?
Verified on devices: Samsung Galaxy A5(7.0), iPhone XR(14.2)

Thanks, lowered the priority because earning rewards only depends on your balance and being verified.
The main button switching to the wrong state when following the specific steps detailed doesn't impact rewards.
The "Learn More" page displayed is correct and explains how rewards work.

This is expected (at least for now) since the Learn More button leads to a WebView which doesn't have info necessary to change the state of the button. We might want to add this behaviour in the future, but P3 feels more appropriate :)


Add EditorConfig

As alluded to in this PR, this adds an EditorConfig. It's similar to that in the original PR, except the default indent_style was changed to tab, since the majority of the code is written in Go.  The rest of the file is written as a result.
FYI: The link in .github/CONTRIBUTING.md is broken

Go has its own formatting rules, so maybe *.go file should be excluded

agree about go

Are there any specific rules that you would like to be excluded? As long as the default Go formatting rules don't contradict the EditorConfig, then contributors will still automatically get the correct file editing settings. If Go is excluded as a whole, then settings may be incorrect on type, and only fixed if go fmt is ran. Here is an example of an EditorConfig in kubernetes/dashboard that seems to work well.

That's not my point, an editor supporting Go should already enforce Go formatting rules with go fmt on save, so a second check does not seem useful


Add Package manifest deps to BlendedManifest if not local

Purpose
$subject
Fixes #30884
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

We decided to not include this to SL GA. We shall merge it after the GA release.


Error thrown when enabling "Generate Mipmaps" on a font (only in Advanced Import Settings dialog)

Godot version
v4.0.beta1.official [20d667284]
System information
Windows 10
Issue description
Checking the Generate Mipmaps checkbox in Advanced Import Settings for a font throws the error:
The new image mipmaps configuration must match the texture's image mipmaps configuration
Doesn't occur when checking the same checkbox in the regular Import tab.
Steps to reproduce

Drag-and-drop any font into a project (checked with a few ttf and otf files, both in an existing and an empty project)
Double click the font to open Advanced Import Settings
Check Generate Mipmaps

Minimal reproduction project
No response

cc @bruvzg


soft palate muscles

Add:
abnormal soft palate muscle morphology
DEF: any structural anomaly of any of the five paired muscles of the soft palate that play important roles in swallowing and breathing; these muscles include the tensor veli palatini, palatoglossus, palatopharyngeus, levator veli palatini, and the musculus uvulae muscles
SYN: abnormal palatal muscle morphology
J:208431

abnormal soft palate muscle morphology MP:0030224


A Problem with launching on real iOS device after system update

React-Native: 0.58.4
Platform: iOS 12.2 real device
react-native-permissions: ^2.0.0-alpha.1
Devtools: xCode 10.2.1
Hello,
I have a problem with launching my RN app on real iOS device. App is working on both of the simulators (iOS and Android) but if i want to launch it on real device it works fine only on Android.
I got this error in xCode:

Same issue, rn version 0.59.5

@AmadeuszZaradny This already has been fixed here: https://github.com/zoontek/react-native-permissions and will be in the beta :)


chore: add the triage label for new issues

Closes #2557

Idk how we make this label be applied only to external issues without CI.

Idk how we make this label be applied only to external issues without CI.

I think it's okay. Internal contributors tend to use the blank template anyways, that I don't think is available to externals?

I think it's okay. Internal contributors tend to use the blank template anyways, that I don't think is available to externals?

You're right. As a contributor, I don't have access to this issue format.


Extend variants schema with new fields added in v4

If v4 adds new fields to variant data (such as a combined FAF for exomes/genomes), extend the variant GraphQL schema to include them. Ensure that these fields are compatible with older datasets shown in the browser (make them nullable).

Closed by #1178


Investigate why TF plan of collaborators often hangs

Background

Often the TF plan check on collaborators hangs. This is often fixed by closing and reopening the PR.
We should investigate why that is happening and fix it.
Acceptance Criteria

[ ] Checks work as expected

Reference
How to write good user stories

Found some CI runs fail do to Git checkout, branches being on forks, or merge issues, cannot fix those.
Others CI failures were nil and empty files added code to check for them to help mitigate those errors.
The other error is a GH API timeout issues.
The other errors are related to terraform state ie Error: Error locking state: Error acquiring the state lock: ConditionalCheckFailedException: The conditional request failed
Other errors are the terraforms hitting the GH API Rate limit

Final error seen on the CI is S3 related: Error: error configuring S3 Backend: no valid credential sources for S3 Backend found. Assume this is a permissions issue on the AWS side or the access key stored on the GH repo settings are. Cannot debug until another failure occurs with the latest AWS and GH state to work on.


MERge

I want to merge this change because...

Screenshots

Pull Request Checklist

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Database queries are optimized and the number of queries is constant.
[ ] The changes are tested.
[ ] The code is documented (docstrings, project documentation).

@IsaacMorzy I'm closing this PR as it looks like your local changes, it also doesn't provide any description nor meaningful title.


Write manually selected bad channels to disk

We currently write a table of channels that are bad after running find_bad_channels_maxwell to disk.
But in cases where the user chooses to work in interactive mode (see #131) and potentially changes the bads selection in the interactive Raw browser after automated bad channel detection has been run, we don't update that table. This should probably be changed.

Closing: Users should use the MNE-BIDS Inspector instead.


config(ticdc): mask more security query parameter

What problem does this PR solve?

Issue Number: close #xxx
What is changed and how it works?
mask
"access-token",
"key",
"signature",
"credentials",
"private-key",
"client_secret",
"client_id",
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
`None`.

/retest-required

/retest-required


test/abstract_command_spec: rename cat to fix completions test

[ ] Have you followed the guidelines in our Contributing document?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same change?
[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew typecheck with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

Debugging a failing testcase - https://github.com/Homebrew/brew/actions/runs/8378122352/job/22941960641#step:12:41

Thanks @cho-m!


Shady DOM doesn't honor host selector specificity.

Consider the following element:
<dom-module id="my-element">

  <template>

Some paragraph text...

  </template>
</dom-module>

<my-element class="some-class"></my-element>

Chrome correctly identifies that the border color should be green, but Polymer's shady DOM sets the text to red, even though the :host(.some-class) selector is more specific than :host.

Defining property values for an element scope inside of a qualified :host selector like :host(.some-class) is not currently supported. We do plan to add support for this in the future.

We started out using ShadowDOM and this feature is SUPER awesome, we hope for support soon!

Not having this feature seems to works against encapsulation. In our current workaround we use a class that applies styles to the element from the light DOM.

This seems to be fixed with Polymer 2 and shadyCSS: http://jsbin.com/podejuyowa/edit?html,console,output (tested in Chrome with native shadow dom and Firefox with Shady dom)


feat: orthanc-anon project config

orthanc anon now cofigurable (tag ops, modalities, destionation)
add env variable for project config location
make tag operations a list
add query for project slug by non-hashed values
replace deprecated pydantic features
add utility function to load project config by slug only

Could not get docker to use my env variable so hardcoded COPY command currently. - Managed
Needs more tests (currently relies on single system test - adding a second project there would probably be enough).
@milanmlft submitting as PR so I don't block you, but hopefully this makes sense and you can merge it directly

Not sure why system test fails, but I think CLI fails because when installed normally (not editable mode) the Path(__file__).parents[2] thing fails. Suggestions on better way to handle that? I think we have such clauses all over the place

Not sure why system test fails, but I think CLI fails because when installed normally (not editable mode) the Path(file).parents[2] thing fails. Suggestions on better way to handle that? I think we have such clauses all over the place

I wonder if this more because we don't packge up the .env.sample as part of the install? see [tool.setuptools.package-data] in other repos.
If its not that then:

Simple option, install it as ediatble as that's how we're expecting it to be used?
I'll track down how we've done this before


use data.Entries Ids prop for generating incoming trace link

Pull Request Test Coverage Report for Build 846

0 of 0   changed or added relevant lines in 0 files are covered.
24 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.02%) to 69.097%

Files with Coverage Reduction
New Missed Lines
%

dist/plugins/integrations/AWSIntegration.js
24
70.62%

Totals

Change from base Build 843:
0.02%

Covered Lines:
2652

Relevant Lines:
3589

💛  - Coveralls


Tags toggled stated not very clear

Currently it is not easy to distinguish if tags are all toggled or all untoggled. A better interface will be using check marks, similar to groups and overview.

Tags can be very numerous compared to groups which would cause super long scrolling of the sidebar for no reason. I think the current design is the best for a tags interface. They are toggle buttons that clearly show toggled and untoggled. If you believe that they buttons don't show "toggle-ness" clear enough that's a GTK design problem.


CHEBI:73117 structure is wrong

Hi Adnan,
CHEBI:73117 is 1-hexadecanoyl-2-(5Z,8Z,11Z,14Z-icosatetraenoyl)-sn-glycero-3-phosphoethanolamine while
CHEBI:73009 is 1-hexadecanoyl-2-(5Z,8Z,11Z,14Z-icosatetraenoyl)-sn-glycero-3-phosphoethanolamine zwitterion
Both entries have the relationship: CHEBI:73009 is a tautomer of CHEBI:73117.
The error is that CHEBI:73117 has the tautomer structure so the two entries have identical structures.
I have attached the correct structure that has no charges.
CHEBI_73117.txt
Best wishes,
Kristian

Now fixed. Thanks


Bug: usp_Non_SQL_CPU_consumption has duplicated time counters

usp_Non_SQL_CPU_consumption Stored Procedure ran for 5.5 hours, the root causes are:

when building the timeline, multi instance could generate duplicate time counters which lead to long execution time
Looping logic using cursor

Closed.


Request for details about STCN with wideresnet50+aspp backbone

Could you provide the performance, training schedule, and MS inference detail of  STCN with a wideresnet50+aspp backbone?

Performance: 84.8 on YouTubeVOS19.
Training: Same as the baseline.
MS (from the paper): "For multi-scale testing, we feed the network with 480p/600p and original/flipped images and simply average the output probabilities.  As we trained our network with 480p images, we additionally employ kernelized memory reading [21] in 600p inference for a stronger regularization."

Got that, thanks! What's the multi-scale ratio lists when you apply MS?

Okay, I notice that in the appendix of the paper. Thanks for your immediate reply!

Okay, I notice that in the appendix of the paper. Thanks for your immediate reply!


chore: remove pq width from ivf shuffler

remove pq_width as we don't use it anymore

Codecov Report
Attention: Patch coverage is 50.00000% with 2 lines in your changes are missing coverage. Please review.

Project coverage is 80.63%. Comparing base (be4110d) to head (5bd3178).

Files
Patch %
Lines

rust/lance-index/src/vector/ivf/shuffler.rs
50.00%
1 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2292      +/-   ##
==========================================
- Coverage   80.66%   80.63%   -0.03%
==========================================
  Files         191      191
  Lines       56113    56109       -4
  Branches    56113    56109       -4
==========================================
- Hits        45262    45246      -16
- Misses       8319     8321       +2
- Partials     2532     2542      +10

Flag
Coverage Δ

unittests
80.63% <50.00%> (-0.03%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


Remove typescript branch from workflows

It's no longer needed. Development is now happening in the main branch.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (8a23d4f) 99.37% compared to head (6a3da82) 99.37%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #105   +/-   ##
=======================================
  Coverage   99.37%   99.37%
=======================================
  Files           6        6
  Lines         482      482
  Branches       50       50
=======================================
  Hits          479      479
  Misses          3        3

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


Changing Scale in settings (OSX/M1/12.4) causes window to disappear

Opening the settings on Mac (CMD-S), changed the scale..just to see what it would do, and the window disappeared.  I've been unable to bring it back.  uninstalling / re-installing the plugin has had no effect.

When brining up the settings window, the "paths" fields were empty.  Entering the paths as recommended brought the display back to view, whereupon the scale worked as expected.


[9.x] Set the foreign ID for a related model

Set the foreign ID for related models when using $model->push(). Related to #4641.
This allows you to create a new model and its relations in one go:
$checkout = $user->checkouts()->make();

$checkout->carts->push($checkout->carts()->make(['amount' => '1000', 'currency' => 'EUR']));
$checkout->carts->push($checkout->carts()->make(['amount' => '750', 'currency' => 'EUR']));

$checkout->calculate(); // Use the set relations to calculate the checkout totals for example

$checkout->push();

Likely a breaking change.


Update courses for Fall and Summer 2022

Summary
This PR updates our list of courses with offerings from Fall 2022 and Summer 2022.

[x] ran npm run courses-gen and npm run req-gen

Test Plan
Verify that the site works and has updated course data. Check that a new course such as ILRHR 5645 can be added and that the bottom bar shows up with expected information for it.
Notes
I noticed that there are a lot of courses with malformated values for catalogWhenOffered, such as "Fall or Spring." or "Fall, spring.". I was afraid to go through and fix some of these values because it seems that courses already in a user's plan won't show the updated seasons after being changed in full-courses.json, and I was worried that this would break something. I think should make our semester checking more versatile to handle different ways of representing the seasons rather than trying to fix the full courses file.
Before fixing the lowercase s in spring:

After fixing it, the old course is unchanged, but a new one is right:

The warning for the fixed course is for it being a duplicate.

I think should make our semester checking more versatile to handle different ways of representing the seasons rather than trying to fix the full courses file.

I agree with this! This is the same issue @andxu282 brought up in slack a couple of weeks ago, but might happen more frequently than we thought. I think there is an item on notion if you wanted to add more details to it!


Caching

Add option to cache certain API's (ie stats) with some level of consistency guarantee (ie expire cache on write to simulate write through cache).
Requires API's are identical between calls, which needs additional research.
Could add batching functionality if certain calls are always made together.
Mark as unsafe advanced feature only, as this removes the transparency guarantee.

I could see it also being used for the News Feed which has has a heavy 1-3 second fetch time.

Might as well hard code news feed to return static data. It seems quite useless a feature.

API requests that get called a lot and could be cached:

/catalog/get_follow. Invalidate on /follow/follow_user and /follow/unfollow_user.
/catalog/get_block. Invalidate on /follow/block_user and /follow/unblock_user.

There's also /lobby/get_vip_status, but I have no idea what it does. Response is always empty for me.

/lobby/get_vip_status seems to be called anytime I'm qualifying for celestial challenge

Thanks for the info. Might not be safe to cache it then. Can't really implement it either if I wanted to because I'm nowhere near celestial. 😆

I created a PR for /catalog/get_follow and /catalog/get_block cache. #64

Closing as @Borengar implemented all of them. 🙏


DNS lookups fail inside docker container in AWS govcloud

Cloudbreak isn't working in the AWS "govcloud" (us-gov-west-1) region. The reason is that DNS lookups don't work inside the docker container.  I'm just wondering if anyone has had similar problems or has any insights.  The lookups work fine outside the container.
OS: rhel7
Docker version: 1.7.1
Java: OpenJDK 1.8.0_51
In case it is of interest, the failure occurs when attempting to create a Cloudbreak "credential".  It's trying to connect to the AWS Security Token Service(s) and failing to resolve "sts.amazonaws.com", one of the service endpoints.
Any help appreciated!

Hi Chris,
I'd be surprised if it worked. AFAIK the GovCloud using a different STS endpoint (http://docs.aws.amazon.com/govcloud-us/latest/UserGuide/using-govcloud-endpoints.html).
Janos

Yeah, it's definitely not clear it would work.  But that's a moot point until it can actually resolve the host to an IP and try it.
Fyi, I tracked down the code that triggers this, and it's written to iterate through all regions (except govcloud and... north China) and try to import key pairs.  So maybe the import fails N times and doesn't get any keypairs, and it still continues on its merry way and the rest of it works.  I won't know until DNS lookups start working :(

DNS lookup definitely should work and uses the cloud providers's DNS to resolve the lookups. If you compare /etc/consul/consul.json with /etc/resolv.conf you should see the Consul falls back to the same DNS as used by the host.
[cloudbreak@cbgateway-0-azureujteszt-20150812152938 ~]$ cat /etc/consul/consul.json
{
  "bootstrap_expect": 3,
  "server": true,
  "advertise_addr": "<IP_ADDRESS>",
  "data_dir": "/data",
  "ui_dir": "/ui",
  "client_addr": "<IP_ADDRESS>",
  "recursors": [
    "<IP_ADDRESS>"
  ],
  "disable_update_check": true,
  "retry_join": [
    "<IP_ADDRESS>",
    "<IP_ADDRESS>"
  ],
  "ports": {
    "DNS": 53,
    "HTTP": 8500,
    "HTTPS": -1
  },
  "dns_config": {
    "allow_stale": true,
    "max_stale": "5m",
    "node_ttl": "1m"
  }
}
[cloudbreak@cbgateway-0-azureujteszt-20150812152938 ~]$ cat /etc/resolv.conf
# Generated by NetworkManager
search cbgateway-0-azureujteszt-20150812152938.a7.internal.cloudapp.net
nameserver <IP_ADDRESS>

This is what I see in the consul container.  Consul is started as:
/bin/consul agent -config-dir=/config --server --bootstrap --advertise <IP_ADDRESS>

Its config is:
bash-4.3# cat /config/consul.json
{
        "data_dir": "/data",
        "ui_dir": "/ui",
        "client_addr": "<IP_ADDRESS>",
        "ports": {
                "dns": 53
        },
        "recursor": "<IP_ADDRESS>",
        "disable_update_check": true
}

The host's /etc/resolve.conf is:
$ cat /etc/resolv.conf
# Generated by NetworkManager
search us-gov-west-1.compute.internal
nameserver <IP_ADDRESS>

I don't see <IP_ADDRESS> in the consul config.  So I don't think they match.  (Maybe hand-editing the "recursor" value would help?  Though I shouldn't need to do that, right?)

Looks like you are using an older version of Cloudbreak.
This was changed a while ago: https://github.com/sequenceiq/munchausen/commit/c3c8ad207f3cf16d440de1ee809c225b1e825e6b
Can you run cbd doctor and check the version, etc? If you upgrade to 1.0.0 (cbd update) that should use the correct DNS.

I did a cbd update and now have cbd 1.0.0.  cbd doctor shows:
===> Deployer doctor: Checks your environment, and reports a diagnose.
local version:1.0.0
latest release:1.0.0
docker command: OK
docker client version: OK
/tmp/bashenv.259200910: line 1583: [: -lt: unary operator expected
docker server version: OK
[WARN] docker-compose.yml already exists, BUT generate would create a DIFFERENT one!
[WARN] if you want to regenerate, remove it first:
  cbd regenerate
[WARN] expected change:

(omitted docker-compose.yml change, as it contains secret keys)
The consul docker image it's using is sequenceiq/consul:v0.5.0-v3.  The consul config is the same as before and DNS lookups still don't work.  I'm not sure the consul image changed in the upgrade, but I think some other images were updated.  Cloudbreak itself is at 1.0.0.
In case it helps, here are the docker images it's using:
sequenceiq/uaa:1.8.1-v2
sequenceiq/socat:latest
gliderlabs/logspout:master
sequenceiq/sultans-bin:1.0.1
sequenceiq/periscope:0.5.6
sequenceiq/pcdb:0.5.6
gliderlabs/registrator:v5
sequenceiq/consul:v0.5.0-v3
sequenceiq/cbdb:1.0.0
postgres:9.4.1
sequenceiq/uluwatu-bin:1.0.1
sequenceiq/cloudbreak:1.0.0
sequenceiq/ambassadord:0.5.0

The container versions to be used are in the docker-compose.yml, thus the file has to be regenerated (as indicated by cbd doctor output. Editing the compose file manually it's not a good idea - everything should be added in the Profile and re/generate pick up and adds in the compose file.
.....

export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=

If you still have problems please join this HipChat room from a browser: https://www.hipchat.com/gvKQLjyea

Yes, I regenerated it and then added the keys.  In fact, I restarted from a blank deployment directory and did cbd init and cbd generate.  But I do like that you can use the Profile instead so cbd doctor doesn't give you dire warnings.  I'll change that.

I eventually figured this out.  I've had to use a VM based on a "hardened" image; the nature of the hardening was not described to me.  But I found some information on the Docker website that gave me what I needed.  The key was the IP forwarding system setting.  It had been switched off; switching it on made it work.
So it was not a cloudbreak problem; I'll close this issue.  Thanks for trying to help!

How To Fix DNS Lookup Failed Error in Chrome: https://www.wiknix.com/how-to-fix-dns-lookup-failed-error-in-chrome/


Trades on OSMOSIS show up as transaction type_UNKOWN

Recently when I export my osmosis transaction use stake.tax, new swaps/trades show up as two or more transaction transaction type _UNKNOWN and then don't show up at all when I import them into cointracking. Older trades still show up as trades but newer ones don't.
Please fix the exports for trades on osmosis.

Several fixes/updates for newer types of transactions for osmosis, especially swap.  There's still more newer types not supported yet due to complexity when reading the explorer, but simply open up new github issue, and I should be able to take a look.


fix(isPlainObject):  support check Object.create(null)

https://github.com/reduxjs/redux/issues/4632

Added a test for this as well. Thanks!


Getting NaN values for prediction

Hello everyone,
Thank you so much for sharing the code. It was so helpful. I was using the pre-trained model on a video, and I can tell that it can smoothly detect all faces, but it highlights them all in red color (not-speaking), and it doesn't show a number for prediction. It simply shows a NaN error. Do you know what could be wrong?
Image attached: https://i.imgur.com/ssgjjP0.png

It looks strange, did you just run the demoTalkNet.py code directly? It looks like model get the bug for processing the videos, so the prediction score becomes NaN.

Hello,
Yes, I just run that python file and get this error. I simply run:
python demoTalkNet.py --videoName {video name without extension}
It keeps detecting scenes and faces and generating crop pictures, and here's the log:
2022-11-12 01:27:11 Extract the video and save in demo\video4\pyavi\video.avi 2022-11-12 01:27:12 Extract the audio and save in demo\video4\pyavi\audio.wav 2022-11-12 01:27:28 Extract the frames and save in demo\video4\pyframes demo\video4\pyavi\video.avi - scenes detected 3 2022-11-12 01:28:38 Scene detection and save in demo\video4\pywork 2022-11-12 01:32:40 Face detection and save in demo\video4\pywork 2022-11-12 01:32:40 Face track and detected 102 tracks 100%|████████████████████████████████████████████████████████████████████████████████| 102/102 [01:02<00:00,  1.62it/s] 2022-11-12 01:33:43 Face Crop and saved in demo\video4\pycrop tracks 11-12 01:33:43 Model para number = 15.01 Model pretrain_TalkSet.model loaded from previous state!   0%|                                                                                | 0/102 [00:00<?, ?it/s] Traceback (most recent call last):   File "demoTalkNet.py", line 458, in <module>     main()   File "demoTalkNet.py", line 444, in main     scores = evaluate_network(files, args)   File "demoTalkNet.py", line 218, in evaluate_network     _, audio = wavfile.read(os.path.join(args.pycropPath, fileName + '.wav'))   File "C:\Users\Adham\miniconda3\envs\TalkNet\lib\site-packages\scipy\io\wavfile.py", line 647, in read     fid = open(filename, 'rb') FileNotFoundError: [Errno 2] No such file or directory: 'demo\\video4\\pycrop\\demo\\video4\\pycrop\\00000.wav'
As you can see, it didn't generate the video_out file. Do you know what it could be?

Also that FileNotFoundError is confusing because that .wav file exists but in pycrop directory. I don't know why it repeats the demo\video4\pycrop

you are using windows, the delimiter is different with linux.
'' and '//'

So how do you think I should fix it?

You need to use the correct windows-based absolute path.


Add GetNextPublishSeqNo() for Channel in confirm mode

GetNextPublishSeqNo method on Channel will be very useful for handling of especailly NACKed messages to keep track of message going to be published so that those can be republished or acted upon. The confirms.published counter is already there and this method will just return the same counter.
Resolves https://github.com/streadway/amqp/issues/476

👍

@michaelklishin
When merging it. https://github.com/streadway/amqp/pull/478

Hey folks,
I'm posting this on behalf of the core team.
As you have noticed, this client hasn't seen a lot of activity recently.
Many users are unhappy about that and we fully recognize that it's a popular
library that should be maintained more actively. There are also many community
members who have contributed pull requests and haven't been merged for various reasons.
Because this client has a long tradition of "no breaking public API changes", certain
reasonable changes will likely never be accepted. This is frustrating to those who
have put in their time and effort into trying to improve this library.
We would like to thank @streadway
for developing this client and maintaining it for a decade — that's a remarkable contribution
to the RabbitMQ ecosystem. We this now is a good time to get more contributors
involved.
Team RabbitMQ has adopted a "hard fork" of this client
in order to give the community a place to evolve the API. Several RabbitMQ core team members
will participate but we think it very much should be a community-driven effort.
What do we mean by "hard fork" and what does it mean for you? The entire history of the project
is retained in the new repository but it is not a GitHub fork by design. The license remains the same
2-clause BSD. The contribution process won't change much (except that we hope to review and accept PRs
reasonably quickly).
What does change is that this new fork will accept reasonable breaking API changes according
to Semantic Versioning (or at least our understanding of it). At the moment the API is identical
to that of streadway/amqp but the package name is different. We will begin reviewing PRs
and merging them if they make sense in the upcoming weeks.
If your PR hasn't been accepted or reviewed, you are welcome to re-submit it for rabbitmq/amqp091-go.
RabbitMQ core team members will evaluate the PRs currently open for streadway/amqp as time allows,
and pull those that don't have any conflicts. We cannot promise that every PR would be accepted
but at least we are open to changing the API going forward.
Note that it is a high season for holidays in some parts of the world, so we may be slower
to respond in the next few weeks but otherwise, we are eager to review as many currently open PRs
as practically possible soon.
Thank you for using RabbitMQ and contributing to this client. On behalf of the RabbitMQ core team,
@chunyilyu and @michaelklishin.

For everyone who reaches this thread now, note that the exact same commit was released in rabbitmq/amqp091-go: https://github.com/rabbitmq/amqp091-go/releases/tag/v1.2.0


Add ability to select the event templates available according to role

All participants should not be able to create all possible events.

Apply the same strategy for the plans as well


fix(vitest): don't hang when mocking files with cyclic dependencies

Description
Fixes #4373
The problem was that the call stack didn't contain the file that triggered the mock factory execution - in this case importActual should behave the same way as a dynamic import.

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. If the feature is substantial or introduces breaking changes without a discussion, PR might be closed.
[ ] Ideally, include a test that fails without this PR but passes with it.
[ ] Please, don't make changes to pnpm-lock.yaml unless you introduce a new test example.

Tests

[ ] Run the tests with pnpm test:ci.

Documentation

[ ] If you introduce new functionality, document it. You can run documentation with pnpm run docs command.

Changesets

[ ] Changes in changelog are generated from PR name. Please, make sure that it explains your changes in an understandable manner. Please, prefix changeset messages with feat:, fix:, perf:, docs:, or chore:.

Any ideas why birpc doesn't timeout in these cases? The module is requested via rpc and resolved on main thread - right?

Any ideas why birpc doesn't timeout in these cases? The module is requested via rpc and resolved on main thread - right?

RPC returned the information correctly. In this particular case we need to import ./module-1 the second time and since it is cached, we return the same .promise, so it just never resolves. We need to return exports in this case to not go into this situation. We already do this for regular imports, but importActual worked a bit differently.


Improve Hamming skeleton variables and method signature

As this is supposed to be a starting point for the exercise and this is the first real exercise that a student will carry out, it seems like the provided code should follow best practices. This PR introduces four changes:

Replace $a and $b with $strandA and $strandB.
Introduce type hinting and return type declaration.
Replace multiple // comments at the top with a multiline comment.
Suggest that the student removes the skeleton file comment, as this gets left in the vast majority of solutions that are submitted.

I'm a bit on the fence on most of the changes. I am definitely on board with changing the variable names to something better than $a and $b.
I'm a bit torn on the type-hinting and return types. I am 100% for them in my own code and I tell students that I like that they used them when they submit using them, but it's also not something that's required by PHP and it's also fairly new and somewhat controversial across PHP devs.
For the comment change, I've rarely seen and rarely ever use /* ... / outside of a function body. For doc blocks I'd use /* ... / but this is not a doc block situation. When I see / ... */ it's usually inside a function to explain a particularly tricky or complicated bit of code. So I could go either way on this one. If you feel strongly about changing the comment style then that's fine.
As far as adding the comment about removing the comment, I like that. I would guess 60-80% come in with the comment still there. I thought I'd seen it somewhere to remove it (maybe another track) or it could have been a mentor that mentioned it was no longer valid. Since then, I do the same when I see these.

I admittedly opened this pull request solely to improve the variable names, I decided to add the other changes when I was already in the file. I wasn't sure if the type hints would be well received, but decided that as the types in this instance are clear and we're not enforcing strict type checks there is no real downside to them, but it does expose students to their existence. It's also a good habit to get into when it comes to using automated code tools and static analysis. I can see the argument against including them however, as they're not required and some students may not realise that.
I'm happy either way with the comments, you'd never normally see non-docblock comments outside of a function body or class, so it's an exceptional case, but generally I would prefer to see multiline comments inside a function using the multiline comment syntax, so it seemed better to present that way of doing it. No strong feeling either way.

I think it's overall a good change. I would not have an issue if it were merged.

I think it's a useful way to introduce the student to the idea of type hinting and return types, so I would be in favour of this change. If anyone has any reason to disagree, we can always reopen a new issue and debate further!


Criteria List

Adds tabs to the main page, along with a new tab for Criteria. On the Criteria tab we list out the current Criteria maintained by the CriteriaProvider, and the ability to upload ELM to import new criteria.
This is a combination of PATHWAYS-260 (Add tabs and Criteria list tab to main selection page) and PATHWAYS-239 (Implement Criteria Provider and importing from criteria tab)

Note that the tabs use the react-tabs library and not Material UI. I experimented with the Material UI tabs for a day but there were some downsides and I didn't want to spend any more time trying to style it. Below are notes on 2 possible approaches in case we do want to go that direction

Core Library Only
Downside: we need to do our own state management and conditional rendering of tab content

import { Tab, Tabs } from '@material-ui/core';

const [value, setValue] = useState<number>(0);

<Tabs
  value={value}
  onChange={(event: object, value: any):void => setValue(value) } >
  <Tab label='Pathways' />
  <Tab label='Criteria' />
</Tabs>

{ value === 0 && <PathwaysList /> }
{ value === 1 && <CriteriaList /> }

Core plus Labs (beta)
Downside: this is bleeding-edge (merged within the last 2 weeks) and there may be bugs
One notable bug is that as of when I tried it there was a console warning about a <div> within a <p>
Should be fixed on master (https://github.com/mui-org/material-ui/pull/21017) but is not yet on npm

Still need to do our own state management though TabPanel handles conditional rendering
import { Tab } from '@material-ui/core';
import { TabContext, TabList, TabPanel } from '@material-ui/lab';

const [value, setValue] = useState<string>('pathways');

<TabContext value={value}>
  <TabList onChange={(event: object, value: any):void => setValue(value) }>
    <Tab label='Pathways' value='pathways' />
    <Tab label='Criteria' value='criteria' />
  </TabList>

  <TabPanel value='pathways'>
    <PathwaysList />
  </TabPanel>
  <TabPanel value='criteria'>
    <CriteriaList />
  </TabPanel>
</TabContext>


Create SQL binding fails on .NET core 3.1 -

MSSQL Extension Version: 1.13.0
Version: 1.65.0 (Universal)
Commit: b5205cc8eb4fbaa726835538cd82372cc0222d43
Date: 2022-03-02T11:11:20.886Z
Electron: 13.5.2
Chromium: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Darwin arm64 21.3.0

Steps to Reproduce:

create a functions project on .NET 3.1
use object explorer to create SQL binding

edit:
discovered this is independent of the project's target platform, but dependent on whether the .net 6 SDK is on the environment.  a workaround is to also install .net 6 in the environment.

Just tested this after uninstalling all sdks/runtimes. Only installed 3.1 .Net SDK.

I was able to create SQL binding with the latest changes.

Closing as low pri with upcoming .NET Core 3.1 EOL in Dec 2022.


allow multiple runs of handleSubmit

Quickest thing with most impact I could think of without much refactoring of that handleSubmit:

collect everything we need to define success for each step in local state instead of within method, so we can reuse it after method has run
when method runs, only run each step if result is not yet present in local state
when setMetadata fails, show error message encouraging users to hit submit again
fixes #1509
draft for now as I didn't test anything yet

break it i shall

1st try (fixed price)

It seems to be working, the error states are all over the place but i guess that is to be expected.

this needs a rethink as of course the handleSubmit method is frozen once called so won't receive value changes in any React state. Could now mash nit all into 1 try/catch but also exploring to split up into multiple methods called conditionally

Just slap that try catch and continue with the proper idea later 😄

With/ without a wallet connected I keep getting this when accessing the Publish form:


How to config bcrypt ?

Hi team, I try to use bcrypt method for password hash.  But it always report incorrect password.
Here is my configuration for the emq_auth_redis
The password plain text is "password"
auth.redis.auth_cmd = HMGET mqtt_user:%u password
auth.redis.password_hash = bcrypt
<IP_ADDRESS>:6379> HGETALL mqtt_user:usera

"password"
"$2a$06$eHX8EKlD8G.A/4/hqnN8DuHbBFx/5.H5kCzXnHI93vnJXi.Uzo8Kq"
"is_superuser"
"1"

I Also try the follow configurations but still not works.
auth.redis.auth_cmd = HMGET mqtt_user:%u password salt
auth.redis.password_hash = salt,bcrypt
<IP_ADDRESS>:6379> HGETALL mqtt_user:usera

"password"
"$2a$06$eHX8EKlD8G.A/4/hqnN8DuHbBFx/5.H5kCzXnHI93vnJXi.Uzo8Kq"
"salt"
"$2a$06$eHX8EKlD8G.A/4/hqnN8Du"
"is_superuser"
"1"

Any suggestion on this?
I use python to valid the above hash and it is correct. So I think it should not be hash issue.

bcrypt.hashpw("password","$2a$06$eHX8EKlD8G.A/4/hqnN8DuHbBFx/5.H5kCzXnHI93vnJXi.Uzo8K")
'$2a$06$eHX8EKlD8G.A/4/hqnN8DuHbBFx/5.H5kCzXnHI93vnJXi.Uzo8Kq'

Hi, I can tell you what worked for me:
HMGET mqtt_user:%u password salt
12 passes since there is no way to change the default
the same password and hash save as you

@yixingjia

auth.redis.password_hash = bcrypt is not supported. For bcrypt, you'll need to use auth.redis.password_hash = salt,bcrypt

I try the below configuration with the exact same redis data as you.  It works fine for me.
auth.redis.auth_cmd = HMGET mqtt_user:%u password salt
auth.redis.password_hash = salt,bcrypt
What happens when you use this configuration? Could you provide the erlang log?  Also have you reloaded the plugin once you changed the configuration? If you used dashboard, you'll need to firstly stop the plugin and then start again to let the new configuration take effect.

@yixingjia
1. auth.redis.password_hash = bcrypt is not supported. For bcrypt, you'll need to use auth.redis.password_hash = salt,bcrypt

2. I try the below configuration with the exact same redis data as you.  It works fine for me.
   auth.redis.auth_cmd = HMGET mqtt_user:%u password salt
   auth.redis.password_hash = salt,bcrypt
   What happens when you use this configuration? Could you provide the erlang log?  Also have you reloaded the plugin once you changed the configuration? If you used dashboard, you'll need to firstly stop the plugin and then start again to let the new configuration take effect.

Thanks it turn out the the bcrypt algorithm used by Erlang is different with others. I use the erlang version of bcrypt to get the password hash and it works.
We should really put this note in the configuration in case someone else try it with some online bcypte hash generator to get the hash and test.

@yixingjia I think bcrypt algorithm is independent of programming language. It makes no sense that the hash is different across language.
I try your hash $2a$06$eHX8EKlD8G.A/4/hqnN8DuHbBFx/5.H5kCzXnHI93vnJXi.Uzo8Kq, it works just fine with Erlang. Here is the result I run with erlang-bcrypt:
1> bcrypt:hashpw("password", "$2a$06$eHX8EKlD8G.A/4/hqnN8Du").
{ok,"$2a$06$eHX8EKlD8G.A/4/hqnN8DuHbBFx/5.H5kCzXnHI93vnJXi.Uzo8Kq"}
See, the hash is exactly the same as yours that created by other hash generators. Could you try it? If you have other fail cases, please paste the hash string so that we can dig into. Notice that, the hash started with $2b, $2y are not supported yet,

Thank you for your participation, we will close this issue.


arbitrary background-image not working

I'm trying to use bg-[url('/img/hero-pattern.svg')], which should work due to this PR#757 requested by this issue#755
I've got the following config (using as lib within a Remix Deno route using Deno.readTextFile to read the code to feed into generator.generate)
const generator = createGenerator({
  presets: [
    presetUno(),
    presetIcons({
      collections: {
        carbon: async () => {
          const response = await fetch("https://esm.sh/@iconify-json/carbon@1.1.5/icons.json");
          return JSON.parse(await response.text());
        },
      },
    }),
  ],
});

also tried to add
[/bg-\[(url\([^\s]+\))\]/, ([a, b]) => {
  console.log({ a, b });
  return { backgroundImage: b };
}],

this doesn't even log to the console 🤔 in different variations without any luck, it's never picking up bg-images, though the bg-[length:10_20rem] class which I took from the PRs test works as expected
this is my tsx
className="text-red-500 bg-[length:10_20rem] bg-[url('/img/hero-pattern.svg')]"

by the way I'm checking the generated css which is tiny and doesn't contain any background-image related stuff
okay finally got it working with the following custom rule
[/bg-\[(.+)\]/, ([a, b]) => {
  console.log({ a, b });
  return { "background-image": b };
}],

and using the following class bg-[url(/assets/wholesitekond_illu.jpg)] omitting the ' single quotes, otherwise it wouldn't work 🤔🤷♂
Though would be great to have the preset rule work and also with quotes in the class to have easier interop with tailwind as I'm currently trying to switch

Unocss has this util function resolve url string, and other rules resolve url missed ' single quotes both.
https://github.com/unocss/unocss/blob/47a861d628eaa67f0967756f76ad72acc2e79c8b/packages/preset-mini/src/utils/handlers/handlers.ts#L97-L117
If we add ' single quotes to align with tailwind, it would be a breaking change

Huh, you're right I didn't consider trying the built-in rule without quotes, so now I can at least drop my custom rule, thanks a lot 🙏

The rule should support single quote just fine, however the quotes get removed earlier in the splitting phase
https://github.com/unocss/unocss/blob/6b392951b59cb46d737140e5b6d16e78a161ab84/packages/core/src/extractors/split.ts#L4
This example places the quoted token in the safelist, which is processed as is and if you have access to the generator, sending in Set() will work similarly.
https://github.com/unocss/unocss/blob/6b392951b59cb46d737140e5b6d16e78a161ab84/packages/core/src/generator/index.ts#L134-L136
I guess removing the single quote from the splitter may cause problem in vue-like class-object syntax or something similar.
:class="{ 'border': condition }"

It's not recommended to use urls inside the bracket. I would suggest writing a custom rule for that, or directly using style in your components. UnoCSS uses quotes to split the utils on extracting and we are probably not going to support quotes in rule, at least in the near future. Quote matching is a very complex thing to do right and will hurt the performance.


Smart Invert Colors support

Hey @troybrant, I've updated CHANGES and the .podspec (not sure if anybody's still using that).  Hoping to merge into master and then tag as 1.0.13.  I need to get these changes into Flipboard-iOS via Carthage.  If this isn't the proper procedure let me know.  Thanks.

@cjcaufield looks great 🚢


Metaburner Titles don't transfer between machines

Currently Metaburner creates a cache file in the Application Support folder when you import a FCPXML.
This cache file is read on the first frame of playback and saved to memory.
However, currently if you move the Final Cut Pro Library to another machine, there's no mechanism to re-build the cache file.

...and to complicate things, currently "Save FCPXML Internally" is off by default.


Question: train_via_uniform_data

Hi everyone,
https://github.com/facebookresearch/Pearl/blob/main/pearl/utils/scripts/cb_benchmark/run_cb_benchmarks.py#L72
here it specifically states that the data has been collected by acting as a uniform policy. In case that was not the case and the policy was picking actions not uniformly at random and we had a log like that. How would this function change ?

I think I understood how can I change this. What is suspicious there is that the agent still is fed data points one by one, while previously the batch_size was set to 128. Could you please explain ?

Hey @cryptexis, thanks for the question. The cardinality of the labels alphabet can be relatively large (>20). In this code we balanced the data as follows:
-) 1/4 of datapoints contain the true label (and get a reward of 1)
-) 3/4 of the datapoints we uniformly draw a label (most odds is that its not the true label, and then the reward is 0).
To get a truly uniform data set simply use:
action_ind = random.choice(range(action_space.n))
However, since in the UCI dataset the labels cardinality can be < 20 this may deteriorate the performance of the learned reward model due to class imbalance.
Please let us know if there are any additional questions.

@Yonathae - thanks for the answer. So if I have a collected data, with rewards click/non_click - I can basically remove this random part and basically sample from my dataset correct ?
Also could you please answer to my question with the batch_size ?

@cryptexis yes, exactly. remove it and use
action_ind = random.choice(range(action_space.n))
(if i understand correctly, in your case, action_space.n=2 so the dataset should be balanced)

yes, in this code we generate the dataset by interacting with the environment, so the data collection procedure is happening sequentially, namely, one by one. When we train the reward model we use batches and, then we set batch_size to be a value of our choice.

@cryptexis yes, exactly. remove it and use action_ind = random.choice(range(action_space.n)) (if i understand correctly, in your case, action_space.n=2 so the dataset should be balanced)
++ yes, in this code we generate the dataset by interacting with the environment, so the data collection procedure is happening sequentially, namely, one by one. When we train the reward model we use batches and, then we set batch_size to be a value of our choice.

Here is my setup:
I have 6 different ads to show to the customer (I optimize for conversion value) and reward for me is either CONVERSION_VALUE or 0.  And the task is to find the best performing. Each ad has its features in the dataset.  I have set it up to have action_space.n=6.
Also the dataset I have collected has the following properties: 90% of users are shown only one ad (the default one) and only 10% of the users are shown one of the ads randomly.
Questions:

Is action_space.n=6 correct ?
Should I use action_ind = env._current_label in my case ?
Also is it wise to train an agent on the whole data or should I use specific tricks there (since you mentioned above that the dataset should be balanced?

@Yonathae - thank you! Seems clear.
One more question - in benchmarks it seems that for offline_learning exploration_module is set to NoExploration(). Is there a specific reason for that?

@cryptexis exploration_module is only affecting the agent.act() procedure, namely, when the agent takes an action and needs to explore. in the offline_learning case we only do training on the offline data and want to evaluate the "greedy" action relatively to the learned reward model. for this reason, we set NoExploration(), which is equivalent to saying "take the greedy actions with respect to the learned reward function.

@cryptexis exploration_module is only affecting the agent.act() procedure, namely, when the agent takes an action and needs to explore. in the offline_learning case we only do training on the offline data and want to evaluate the "greedy" action relatively to the learned reward model. for this reason, we set NoExploration(), which is equivalent to saying "take the greedy actions with respect to the learned reward function.

Thanks @Yonathae,
I am confused because of the following reason. Let's say I used online learning with ThompsonSampling as exploration_module. And then I want to deploy the learned policy into a production. My assumption was here that since the policy was trained with the ThompsonSampling it will still act not "greedy" when it is deployed. Meaning that, most of the time it will act according to optimal arm, but if the bell curve is not sufficiently tight around that arm it will use sub-optimal arms once in a while.  And that would mean that I will explore non-optimal arms once in a while. Here the big assumption is that I will not feed data to the model once it is deployed.
What you're suggesting with NoExploration, is that there is no way that the deployed policy will explore ever, since it has learned what is the optimal arm from the data.
Or my understanding of deploying the policy is completely wrong and industry standard is always go with the greedy actions as soon as the agent learned the which arm is the optimal ?


Using ${tstamp} variable in bundle instruction causes Gradle daemon to fail to compile due to corrupt jar

Take this sample project uploaded here: https://github.com/gamerson/daemon-compiler-failure
This project has 2 simple bundles built using DM plugin.  And "api" and "impl".  When rebuilding the impl jar using "gradlew --daemon jar"  you can see eventual failures in the gradle compileJava task just by re-running the same command with no change to the source files.  Here is the error that is shown:
~/dev/my repos/daemon-compiler-failure/impl ../gradlew --daemon jar
:api:compileJava UP-TO-DATE
:api:processResources UP-TO-DATE
:api:classes UP-TO-DATE
:api:jar UP-TO-DATE
:impl:compileJava UP-TO-DATE
:impl:processResources UP-TO-DATE
:impl:classes UP-TO-DATE
:impl:jar UP-TO-DATE

BUILD SUCCESSFUL

Total time: 0.718 secs
~/dev/my repos/daemon-compiler-failure/impl ../gradlew --daemon jar
:api:compileJava UP-TO-DATE
:api:processResources UP-TO-DATE
:api:classes UP-TO-DATE
:api:jar
:impl:compileJava
/Users/greg/dev/my repos/daemon-compiler-failure/impl/src/main/java/org/gradle/impl/PersonImpl.java:3: error: cannot access Person
import org.gradle.api.Person;
                     ^
  bad class file: /Users/greg/dev/my repos/daemon-compiler-failure/api/build/libs/api-1.0.0.jar(org/gradle/api/Person.class)
    unable to access file: corrupted zip file
    Please remove or make sure it appears in the correct subdirectory of the classpath.
:impl:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':impl:compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

In the repo I linked to I have the full reproduce steps.  The way to fix the error is to simply drop off the "${tstamp}" variable in the bundle instruction.  I suppose that ${tstamp} variable expansion by bndlib is throwing off the manifest 'out-of-date' calculation someway.  But of course the worst case scenario is that gradle just reruns the "api:jar" task when it doesn't need to.  It should not be throwing the compilerJava task exception.
This never happens if you are not invoking with the daemon.  It appears to be a daemon/caching problem that is triggered by the changing manifest hash inside of DM plugin.
Thoughts?

There is a good chance that this issue will also be fixed with https://github.com/TomDmitriev/gradle-bundle-plugin/issues/51  I'll give it a try

Thanks for the demo! Compilation of impl module is triggered when api.jar is changed, which happens because META-INF/MANIFEST.MF inside api.jar is changed, which in turn happens due to the fact that tstamp is updated. That is the way Gradle works with or without this plugin, so this part is not surprising. The perplexing part is why compilation sometimes fails complaining about corrupted api.jar. I have checked that the file does exist and if the daemon is killed and started again :impl:compileJava becomes successful without re-writing api.jar, so its content does not seem to have anything to do with the problem. Without deeper and, I fear, quite-time consuming investigation I suggest as a work-around running compilation in a separate process, which seems to fix the issue, i. e.
subprojects {
	...

	compileJava {
		options.fork = true
	}
}

so even with fix in #51 applied it still happens but I can confirm that setting compiler.fork = true does fix the issue for me, so I can consider this one closed.


Add no-else-return and update no-unused-vars and keyword-spacing

Sets no-else-return to error
An example of previously working code that will now have an error:
if(condition){
	return false;
}else{
	return true;
}

Example of working code with this rule:
if(condition){
	return false;
}
return true;

Sets the ignoreRestSiblings option to true for the no-unused-vars rule
An example of code that would previously have an error but would now work:
const {unused, ...options} = opts;

Example of code that would work before this change:
const {...options} = opts;
delete options.unused;

Adds this: {before: true, after: false} to the overrides option of keyword-spacing
An example of code that would previously have an error but would now work:
if(this.index > this.highestIndex){
	this.highestIndex = this.index;
}

An attempted solution that has an error due to space-infix-ops:
if(this.index >this.highestIndex{
	this.highestIndex = this.index;
}

Example of code that would work before this change:
let highestIndex = this.highestIndex;
if(this.index > highestIndex){
	this.highestIndex = this.index;
}

Thanks, merged and released in 2.1.4. 🎉


CMake Integration

Hey oKCerG,
I'm working on a customer project, where one implementation goal is the integration of CMake.
Since i did struggle quite a bit with a satisfing search function for projects Quick Controls 2, I found your wonderful implementation of sortfilters.
Last 2 days i took the learning exercise to migrate the given PRO/PRI qmake files to a working
CMakefile.txt structure. Tests are working as expected (CTest framework).
Have a look. Comments are welcome.
Cheers
Ralf

Hey rzerres, and thanks for taking the time to prepare this PR.
Can you split it into 2 PRs? One with the test about ICU and one for CMake support.
Since I'm not that proficient with CMake, I'll ask a friend to quickly review it.

ok. will resend new PR's.


Consider excluding buildSrc by default.

From my testing, there seems to be an inconsistency in the way build plugin dependencies are reported, depending on whether they are installed via build scripts under buildSrc vs other build scripts.
Plugins applied in scripts under buildSrc directory are included in the dependency report generated by this project's plugin, including any dependencies the plugins require
vs
Plugins applied in normal build scripts, i.e. not under buildSrc directory,  are not included in the dependency report.
The dependencies Gradle task excludes buildSrc by default.  Maybe this plugin should also?
Love the work you're doing here!
Andy

For those running into this issue, a workaround when using the gradle-build-action is to set the DEPENDENCY_GRAPH_INCLUDE_PROJECTS env to explicitly exclude buildSrc:
      - name: Setup Gradle
        uses: gradle/gradle-build-action@2
        with:
          dependency-graph: generate
      - name: Build
         env:
           DEPENDENCY_GRAPH_INCLUDE_PROJECTS: "^:(?!buildSrc).*"
         run: ./gradlew build

The intent is to include all plugin dependencies in the report, since these can form a critical part of the build infrastructure. I think it's important to be aware if a compromised plugin is being used to build your project.

Plugins applied in normal build scripts, i.e. not under buildSrc directory, are not included in the dependency report.

This is unexpected. Can you provide a reproducer?
Is it possible the difference you're seeing between buildSrc and other plugins is due to filtering for RuntimeClasspath as well? Regular plugin dependencies end up in the classpath configuration of that project, whereas plugins added via buildSrc may end up in the RuntimeClasspath configuration.

The GitHub dependency graph model allows dependencies to be flagged as "development" or "runtime", and there are plans to surface this difference in the UI. For example, it should be possible to configure alerts only for "runtime" dependencies. (But at this stage, no such functionality exists).
The Gradle Dependency Graph plugin does not currently categorize dependencies in this way. In fact, it's quite tricky to do so due to the flexibility that Gradle provides when defining dependencies and configurations. But we do plan to add this categorization (via heuristics for standard Java/Android/Spring/etc projects and possibly an optional configuration mapping file).
Once we have this, it should be simpler to say "only include runtime dependencies" rather than having to filter based on projects and configurations. But for now I'd rather leave things as they are, where this is possible, if not very convenient.

The intent is to include all plugin dependencies in the report, since these can form a critical part of the build infrastructure. I think it's important to be aware if a compromised plugin is being used to build your project.

Yes, I can see this as being useful.
I investigated functionality with no filters in a branch, and can confirm it does report dependencies for plugins applied both in buildSrc and in the main build scripts.  So all good and consistent on that front and this issue is incorrect.
However, interestingly, the Gradle dependencies task does not report the dependencies of plugins, either applied via buildSrc or the main build scripts, if run normally.  It is possible to run (cd buildSrc && ../gradlew dependencies) to have it report plugin dependencies applied in the buildSrc directory, but couldn't find a way to have it include plugins applied in the main build.gradle[.kts] file.

Plugins applied in normal build scripts, i.e. not under buildSrc directory, are not included in the dependency report.

This is unexpected. Can you provide a reproducer?

As above, looks like I was wrong - apologies! - however, it does look like the standard Gradle dependencies task doesn't report plugin dependencies. Or at least I can't work out how to make it do so ;)

The GitHub dependency graph model allows dependencies to be flagged as "development" or "runtime", and there are plans to surface this difference in the UI. For example, it should be possible to configure alerts only for "runtime" dependencies. (But at this stage, no such functionality exists).

This makes all finds of sense. I've currently limited the dependencies submitted to "runtimeClasspath" for now, as I only want alerts for security issues that affect downstream users of my project. However, I can see the benefit of reporting all dependencies too.

The Gradle Dependency Graph plugin does not currently categorize dependencies in this way. In fact, it's quite tricky to do so due to the flexibility that Gradle provides when defining dependencies and configurations. But we do plan to add this categorization (via heuristics for standard Java/Android/Spring/etc projects and possibly an optional configuration mapping file).

Understood.  Agree that defaulting to known standard config names, but allowing customisation (via regex?), should give a good balance of "works out of the box" for standard use-cases, but can handle more funky ones too.
Happy to drop in and help if you need.

The intent is to include all plugin dependencies in the report, since these can form a critical part of the build infrastructure. I think it's important to be aware if a compromised plugin is being used to build your project.

This was 100% the original intent of this decision.

The GitHub dependency graph model allows dependencies to be flagged as "development" or "runtime", and there are plans to surface this difference in the UI. For example, it should be possible to configure alerts only for "runtime" dependencies. (But at this stage, no such functionality exists).

One problem is defining what "development" truly means here. In the context of a developer creating a plugin, their "development" dependencies may become "runtime" dependencies. Additionally, compile-only dependencies aren't necessarily "runtime" dependencies, even if they are assumed to be present at runtime by the end product.

I investigated functionality with no filters in a branch, and can confirm it does report dependencies for plugins applied both in buildSrc and in the main build scripts. So all good and consistent on that front and this issue is incorrect.

Great, thanks for confirming.

However, interestingly, the Gradle dependencies task does not report the dependencies of plugins, either applied via buildSrc or the main build scripts, if run normally. It is possible to run (cd buildSrc && ../gradlew dependencies) to have it report plugin dependencies applied in the buildSrc directory, but couldn't find a way to have it include plugins applied in the main build.gradle[.kts] file.

You can use the buildEnvironment task to view plugin dependencies.

So, the description of this issue is wrong about the inconsistency. Maybe it's wrong to exclude plugins by default, but maybe its worth documenting how to quickly limit reported dependencies to runtime, i.e. exclude buildSrc and limit to runtimeClasspath...?

Yeah, for now I'm happy with the example in the "Filtering" section, since it excludes buildSrc and restricts to runtimeClasspath. I think that's enough for now.

One problem is defining what "development" truly means here. In the context of a developer creating a plugin, their "development" dependencies may become "runtime" dependencies. Additionally, compile-only dependencies aren't necessarily "runtime" dependencies, even if they are assumed to be present at runtime by the end product.

Absolutely. The difficulty in identifying "runtime" vs "development" dependencies (and the lack of any other scopes like "test") is a reason we haven't tackled this yet in the plugin. However, once the GitHub UI starts to make use of these scopes we'll need to come up with some sort of solution (probably using heuristics by default by permitting user configuration).


[WIP] Dependency: reason-skia -> 5064f50

This picks up https://github.com/revery-ui/reason-skia/pull/58 with the removal of ctypes-foreign and libffi. Probably want to pick up https://github.com/revery-ui/reason-skia/pull/59 as well, and make a proper release of reason-skia, but might as well test this out in CI right away.

/azp run


⚠ Thumbnails API Endpoint has degraded performance

In 3a7a1a7, Thumbnails API Endpoint (https://thumbnails.roblox.com/v1/assets?assetIds=82738847&format=Png&isCircular=false&size=30x30) experienced degraded performance:

HTTP code: 200
Response time: 5703 ms

Resolved: Thumbnails API Endpoint performance has improved in 991ba7e after 12 minutes.


Add recipe details and public recipes page

In this PR, I have:

Created recipe details page
Created public recipes page.

Hi @AbeeraTahir ,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉

Highlights

[x] Descriptive PR ✔
[x] No linters errors ✔
[x] Good commit history ✔
[x] Correct Gitflow ✔

Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Missing LICENCE

Hi Kevin, since the repo does not include a license, I wondered if the code is meant to be free to use.
Could you add a LICENCE to the repo? Would be much appreciated. @kevinscaria

@BrunoZirnstein the code is free to use. Updated the LICENSE.


[DNM] cutil: add PtrGuard for storing Go pointers in C memory

Update: this will be split into several smaller PRs
PtrGuard is a type that allows to store a Go pointer (that is a pointer pointing to memory allocated by the Go runtime) in C memory (that is memory allocated by C, with malloc() for example). The pointer passing rules of cgo don't allow Go code to store Go pointer in C memory. However, C code is allowed to store Go pointer in C memory until the C function returns. PtrGuard takes advantage of this by calling a C function in a Goroutine that stores the Go pointer in the C memory and then waits for a release signal (implemented via a mutex). After the release signal is received, the C memory is overwritten with NULL and the C function returns.
(Alternative to #415)
Closes: #412 #413

I changed the way to synchronize the two threads with each other to a slightly less efficient approach using a small rendezvouz type, because I was afraid the former way might accidentally break in future changes. I hope this new method is also easier to understand. However, here is the old method, if you want to compare: https://github.com/ceph/go-ceph/compare/master...ansiwen:cloan_old#diff-19eb315931cb89ea78898c834269a215bc6a7e9f24d0a7044eda0358853c64d2

@ansiwen I think we can close this now, correct?


Merge TWINE environmental variables with existing

Concourse agent may have specified additional environmental variables, e.g. HTTP_PROXY, which are required for twine to run successfully.  This commit fixes this issue by merging the existing environmental variables with the process call.

This is released in version 0.7.0. Thank you!


[BUG] state_dict is reset every time start_tracking() is called

Description
There is a typo in the start_tracking function where the state_dict is incorrectly checked as state_dic, causing the state_dict to be reset every time start_tracking is called.
Expected behavior
The state_dict should be stored in the session state for the duration of the session without being reset. This will ensure counts are correctly updated.
To Reproduce

Run a streamlit app which uses the streamlit-analytics2 package.
Monitor how counts are updated. You may see that the counts are not accurately captured due to the state_dict being reset.

Additional context
This bug is also present in the original streamlit-analytics repo by jrieke.
Suggested fix
# Current incorrect code
if "state_dic" not in st.session_state:
    st.session_state.state_dict = {}

# Suggested fix
if "state_dict" not in st.session_state:
    st.session_state.state_dict = {}

@robino16 thank you very much for raising this issue!
I will take a look at this today and test a version with the typo fixed.
Do you by any chance have a streamlit python script that you used to validate the dic getting wiped?
I want to understand the before and after state when calling the function twice and I am curious how this was found

Testing package available on testpypi
https://test.pypi.org/project/streamlit-analytics2/
Once fix is validated, will push a main release

Hi @robino16
I have fixed the typo however this has opened pandoras box
TLDR: you can use start_tracking multiple times but you can only use  stop_tracking once
It would seem that streamlit-analytics2 now correctly allow the multiple usage of start_tracking but it doesnt allow the multiple usage of stop_tracking since this function calls the display.show_results function.
https://github.com/444B/streamlit-analytics2/blob/f475e60ef83549361eb6c6775e63d41e0a2fabbe/src/streamlit_analytics2/main.py#L545C9-L545C68
Calling display.show_results twice leads to duplicate keys for the selectbox for the reset prompt since that gets called on

I believe that resolved the issue but I am still curious about the use case for calling start_tracking multiple times if you can only call stop_tracking once.
Ill allow a few hours for discussion on this topic before marking as resolved and pushing the typo and dep fix to main package.
Feel free to test the current test package as shared in previous comment

Hi, @444B .
In my case, I had a multi-page Streamlit app where I wanted to track analytics data individually for each page. Since the counts dict is shared across the pages, I had to modify the main script and adapt it to my use case. I came across this small typo while doing this. I also have noticed that the count values don't always update correctly, but I am not sure this typo is the only culprit here. I just wanted to let you know, since this repo is still being maintained.
The start_tracking function gets called every time a user performs a action in the UI, and since state_dic is never stored in the Streamlit session state, the st.session_state.state_dict = {} will be run on every user action, resetting the state_dict. This means that counts, e.g., for the checked checkboxes, increases on every user action, even if the value of the checkbox remains unchanged. I believe this is unintended behavior.
I believe fixing this typo will resolve some of these issues. Thank you! I won't be able to conduct any tests until later today, sorry.

@robino16
Of course! Thank you for raising the matter and please always raise a bug for any issue or feature.
I take pride in maintaining this project and although I wish I had more time to devote to it, I will always resolve the bugs that I can and keep deps up to date.
Ill push out 0.7.7 now which has the typo fix. I have tested this and it seems to work.
Please keep me in the loop via this issue #100 if you have an issue with the typo issue specifically

To test this change, I made a quick Streamlit app with two checkboxes and a button. I then did the same sequence of actions with and without the typo:

I first checked the checkbox with label "Enable Cats".
Then I clicked the button with label "Click me!" three times.

Note: Performing this sequence of actions will result in the script being rerun 5 times in total (one when launching the app, then four extra times for every user interactions). This means that the start_tracking function will be called 5 times as well.
// here is what we would expect the counts to be:
{"Enable Cats": 1, "Enable Dogs": 0, "Click me!": 3}

Here are the counts that were captured during my tests:
// with the typo:
{"Enable Cats": 5, "Enable Dogs": 5, "Click me!": 3}

// after fixing the typo:
{"Enable Cats": 2, "Enable Dogs": 1, "Click me!": 3}

Without the typo fix, we see that all the checkboxes have count 5 which is the same number of times as the script was run. Altough, only the "Enable Cats" checkbox was checked, we see no difference between the counts of the two checkboxes.
After implementing the fix, we see that "Enable Cats" have count 2 which is one more than the "Enable Dogs" checkbox. The extra count was triggered when I checked the checkbox, which does make sense and which is an improvement.
We can thus conclude that fixing the typo solves one problem.
However, there is still a bug here. Since I only clicked the "Enable Cats" checkbox once, I would expect it to store the value 1 and 0 for "Enable Dogs. This is due to a different bug with the _wrap_checkbox wrapper where the counts for checkboxes are incremented on startup, before any action has been done by the user. I will report this in a separate issue.


Change AWS Simple template AMI back to CoreOS

This was inadvertently changed in 28e52bd6ffe8af5e49fcd2d12499ccc92476f2f9
That was supposed to just update the custom CentOS AMI, but caught the CoreOS
AMI as well
cc: @lingmann

Confirmed by launching a single-master cluster, things come up and nodes are all CoreOS.

Thanks Cody this is definitely the issue. :+1:


static ios build

in #276 we created dylibs for iOS for cr-sqlite to load via sqlite3_load_extension.
This seems to work so long as the dylib is packaged directly with the app but not if the dylib is distributed via Cocoapod.
(is that a correct summary @alanjhughes?)
This is an ugly first pass at trying to build the SQLite library with cr-sqlite statically linked. It seems to produce the correct results but I haven't tried using it in an xcode project.
Questions:

is a .a file what is expected when bringing sqlite into an ios project?
given my lack of ios experience, how can I test this out in an xcode project?
how can I test this with Cocoapod?
Does expo currently have a custom build of sqlite? If so, we'll need to figure out how to integrate into that process.

Building:
export IOS_TARGET=aarch64-apple-ios; make sqlite3_lib

libsqlite3-aarch64-apple-ios.a will be available in ./dist

Update:
I no longer link against SQLite itself. I just build the object files for the extension. This will allow users to use any build of SQLite they want. They just need to:

Add this library to their xcode project
Call sqlite3_auto_extension((void *)sqlite3_crsqlite_init); somewhere at the beginning of their app to register the extension

I added a script to build all the various ios targets and create universal simulator and universal ios binaries.
crsqlite/core> ./all-ios.sh

this'll output artifacts into:
./dist-ios
./dist-ios-sim
./dist-macos
The script isn't incremental and rebuilds the world every time.

Starter xcode project that looks to be working! https://github.com/tantaman/xcode-starter