Design meeting discussion: August 20, 2015

This issue is for discussion of the EF design meeting on August 20, 2015.
Items discussed were:

Error handling in Data Annotations
Aligning property discovery with type mapping
Relationship API naming

Please comment on this issue to provide feedback, ask questions, etc.

The design notes are still empty... https://github.com/aspnet/EntityFramework/wiki/Design-Meeting-Notes--August-20,-2015. I would like to see what I missed last week.

@natemcmaster just added the relationship API notes

@rowanmiller So, no updates yet for many-to-many relationships?

@natemcmaster not a v7 RTM feature.

How does WithOne distinguished between required and optional if ForeignKey properties are not used?

@davidroth there is always a foreign key property... it just depends whether it is in your CLR class or in shadow state :smile:. We do have a sugar .Required() API on the relationship that just calls .Required() on the foreign key for you (whether it is CLR or shadow state).

So this addresses touches on something I've long wished for. It's great that CLR primitive type mappings will not be limited for the providers, but will it be possible to add your own primitive type mappings?
For example, we use a DateLocal struct extensively. It wraps a DateTime and has equivalent members and has an explicit conversion from DateTime that strips away time-of-day information and converts UTC time to local. We would like to this on entity date fields since it reinforces the fact that time of day will not be persisted. It also would integrate with our business logic perfectly. We wouldn't have to read the entity value as DateTime and explicitly cast to DateLocal every time when we know it was already persisted as such.
For another example, we occasionally use Double0To1 and PositiveInteger structs which do nothing more than enforce our own rules, e.g. throwing errors on explicit cast from int -1 to PositiveInteger. We would also like to introduce an Id<TEntity> struct so that primary keys and foreign keys can be compared on our entities with static type checking.
We have type converters for these types to easily convert between the custom struct and the wrapped CLR type, so data binding and serialization plays well with these types. My question is, will our projects be able to hook into the type mapper and provide converters for these custom types so that we can use these types for EF primitive properties one day, even though providers will not know about them?

EF team:  I liked where you were headed with the semantic changes for defining relationships, but I also understand why you ultimately decided to return nearly full circle. However, I must admit that I'm not a big fan of inferring whether the relationship is required or optional based on the nullability of the foreign key's type. What if that logic varies from application to application and the domain classes are shared? Or what if the logic depends on certain conditions? Or what if the foreign key is defined in an abstract class and required/optional differs between concrete classes? I'd rather define that logic using the fluent API in my context class (potentially with conditional statements) than in my domain class. So, basically I'd prefer the EF6 syntax or the EF7 Current syntax over the EF7 New syntax.
How about this:  what if you were to replace HasOne with Has and WithOne/WithMany with With, and then provide an optional enumeration parameter with values like ExactlyOne, ZeroOrOne, AtLeastOne, etc.
So, if the developer writes:
modelBuilder.Entity<Post>().Has(p => p.Blog).With(b => b.Posts);
EF can infer the cardinality based on whether Blog is nullable and whether Posts is a collection (thus achieving your goal).
But, if the developer writes:
modelBuilder.Entity<Post>().Has(p => p.Blog, Cardinality.ExactlyOne).With(b => b.Posts);
the developer is specifying that Blog is required even if it is nullable.
And this:
modelBuilder.Entity<Post>().Has(p => p.Blog).With(b => b.Posts, Cardinality.AtLeastOne);
means that EF should throw an exception if the application attempts to persist a blog with no posts.
That would also enable this:
Cardinality conditionalCardinality = (someCondition ? Cardinality.ExactlyOne : Cardinality.ZeroOrOne);
modelBuilder.Entity<Post>().Has(p => p.Blog, conditionalCardinality).With(b => b.Posts);

@jnm2 - In past we have discussed about ability to add user-defined custom type mapping. I have created #2991 to track such scenarios. Though it is in backlog and probably won't be available in RTM.

@duskreq Wouldn't it impose consistency, which is a good thing? If the relationship is in fact zero or one, the possibility always exists that the foreign key on the data model should be null. Why would you ever not want a nullable foreign key in that case? Similarly, if the relationship is in fact one to one, why would you ever want a nullable foreign key? If you're going to be explicit about the shape of the data, where better to be consistent and explicit than in the  data model itself?

In an ideal scenario, yes, imposing consistency is very good.  However, I often work with a database for a third-party application, and I can't modify the schema lest I break the application.  The database is littered with examples of "required" foreign keys on nullable columns.  So, either the domain class is inconsistent with the database schema (i.e. I make the property non-nullable), or the context is inconsistent with the domain class.  I happen to choose the former option, which will work fine in EF7 New, but I imagine at some point I will need to choose the latter option, which EF7 New wouldn't allow.
Also, consider this hypothetical scenario, which is closer to the gist of my concern.  Say I create an application and sell it to two customers.  Customer A wants the foreign key required but Customer B doesn't.  In EF6 and EF7 Current I could make the foreign key property a nullable type, and then I could create an app.config setting and conditional logic in my context class, thus determining whether the foreign key is required at runtime.  In EF7 New I would have to maintain separate code bases for the domain classes, as the nullability of the foreign key property must be predetermined at compile time.

@duskreq I follow that, but you can't rely on the third party database to provide a non-null value. If a null shows up in the database and you materialize data assuming it will never show up, that's a problem. Since the third party app is poorly designed, I would assume you should deal with it explicitly by modeling the nullability and checking for it instead of hiding the problem and hoping it never causes an issue.
Your second scenario is similar. As long as the database might give you a null, why try to hide that in application B? What is gained compared to coding as though both A and B might be null (which is true)?

@duskreq By default the nullability of the FK property in the model is the same as the CLR type, but you can always make the FK required in the model without it being a non-nullable CLR type (the best example of this is wanting to make a string property required).
APIs like the one you proposed (modelBuilder.Entity<Post>().Has(p => p.Blog).With(b => b.Posts);) break down pretty quick with IntelliSense because the compiler often can't chose the right overload based on the lambda pointing to a collection or reference. This then breaks follow on APIs such as ForeignKey since the ability to provide strong typing relies on identifying which is the dependent/principal entity based on the previous API calls. We actually originally tried this approach in EF4.1 and then tried to make it work again in the early stages of EF7... but concluded again that it just doesn't work.

Ah, so I would specify FKIdProp.Required() in a separate statement.  That makes sense - thank you for clarifying.

@duskreq - You can also chain Required() in same statement defining the relationship.

We are closing this issue because no further action is planned for this issue. If you still have any issues or questions, please log a new issue with any additional details that you have.


Env file change

This fixes #238

@JackWilb Looking at d33c786, will this PR affect the deploy process?

@JackWilb Looking at d33c786, will this PR affect the deploy process?

It shouldn't @AlmightyYakob. When we're deploying to production we're using uwsgi and building the client apps (not even touching .env from what I can tell). Therefore there shouldn't be an issue with the .env being renamed.
Here is the start of the relevant code section. You can also look in the tasks folder and see we're never

If Roni, agrees I think we can merge


Add Billing E2E into RP release pipeline

Add Billing E2E into RP release pipeline

opps missed one change we need


Add tests for sitemaps

Short description

Add tests for sitemaps
Proposed changes

Validate sitemap content
Validate number of SQL queries executed (I still see some room improvement here)

Pull Request Review Guidelines

This pull request will bring the total coverage in the repository to 75.4% (0.0% change).

How does this not increase the test coverage? :angry:


Fix eager loading problem

Caused by cbbff9c7 which removed formtastic/util.rb but not the corresponding autoload :Util statement.

This looks good to me! Sorry for the issue :sweat_smile:
I wonder how this happened (just to see is there's an issue way to get the issue covered by our specs).  Are you maybe using Formtastic.eager_load!?

No problem at all. I was running my Rails 6 app in production mode. Seems to be whatever functionality is behind the config.eager_load flag.

Thank you both! 🙇

Thanks! :heart_eyes:


fixing cards size in LandingThreeGrid component

Description 📝

Closes: #498
Fixing cards size in LandingThreeGrid component in small devices.

Thankyou @s2sharpit for your valuable contribution.


Flush output buffering for GZIP response

There's an undocumented feature in cockpit for compressing the output,
however it's missing the function to flush output buffering, so browser ends up with invalid response.
In my opinion this functionality could be dropped as it's easier to setup compression in .htaccess file which is required anyway by default.

The only way I've fixed this annoying error was disabling deflate module. Why don't you merge it?

This is a question to repo maintainer, @aheinze


fix(package): update @octokit/rest to version 15.4.1

Closes #465

Actually let me fix https://github.com/octokit/rest.js/issues/865 before merging into probot


⚠ api.piste.gouv.fr healthcheck has degraded performance

In 799f680, api.piste.gouv.fr healthcheck (https://api.piste.gouv.fr/cassation/judilibre/v1.0/healthcheck) experienced degraded performance:

HTTP code: 200
Response time: 3037 ms

Resolved: api.piste.gouv.fr healthcheck performance has improved in efefbf1.


related packages

how would this compare to https://github.com/wheineman/nrpl ?

EDIT

https://github.com/jlp765/tnim TinyNim - a REPL for Nim (an interactive sandbox for testing Nim code)

The other package is dead, last update 2015.

Both are indeed similar. Now INim has some better features (see updated README.md, though the GIF is outdated). I plan to keep adding/accepting more features to INim, such as auto-complete, to get to the level of bpython3. nrpl depends on TCC [http://bellard.org/tcc/], so doesn't work out of the box.

to get to the level of bpython3

you probably be already know but ipython is some good features not present in bpython (and there's a combo bipython that combines both...)

There is also the official REPL nim secret (seems to work as an interpreter which is limited[1], instead of re-compilation) but it has many problems [1] so it's hidden from the users and won't be documented [2].
$ nim secret

[1] https://github.com/nim-lang/Nim/issues/5886
[2] https://github.com/nim-lang/Nim/issues/2633

tnim (not the website) seems way more bugged than INim for REPL usage, after messing up with the indentation I got errors afterwards (invalid indentation), closing and opening again didn't fix, had to clear my session with \quitclear, this behavior is not expected for a python-like REPL.
It looks like INim is the best out there.


Extract JSON schema/context files and validation

Feature Request
Currently, JSON schema files are produced and verified manually in the specification repo. We should automate the production and verification of the schemas in a separate repo using an automated build system and JSON schema validator. In addition, we should include verification of JSON-LD expansion and compaction against the DSP Json-Ld context.
The produced JSON schemas and context can then be used in the specification documents.

I don't have a strong opinion on keeping it all in one repo. We could adjust the existing links in the webpage. Pulling in examples from a remote source would be technically possible but might muddy the git-history as these changes might be breaking.

OK, I'll develop it in a separate repo for the time being. Later, assuming schema is the approach we want to take for the spec, the group can decide whether to merge or keep separate.

I created a proposal for this work in a separate repository as the changes are far-reaching. The repository can be accessed here.
I'd like to discuss this, but in the meantime, here is a recap of what is being proposed.
Overview
The open-ended nature of Json-Ld and RDF-based technologies such as DCAT and ODRL, which DSP relies on, presents a number of challenges when defining a specification whose primary goal is interoperability. For example, these technologies allow for multiple serialization formats, data types, and ways of expressing the same meaning, which makes it difficult to establish a well-defined common ground for implementations to verify against.
Since interoperability is our primary goal, we need a formal way to specify and validate all DSP message types and have that formal specification itself verified using a series of automated tests. A complimentary goal of interoperability is simplicity. We should also make it as easy as possible for implementations to meet mandatory DSP requirements, as this removes ambiguity introduced by complex features.
Therefore, we should do the following:

Use Json Schema to formally specify all DSP messages and types. DSP Json schemas should be verified by automated testing.
As part of automated testing, all example messages referenced in the specification text should be verified against their respective JSON schemas.
The DSP Json-Ld Context should be refactored to allow implementations to elect whether they will process messages as Json or Json-Ld. This is the same approach taken by the W3C Verfiable Credentials Data Model 2.0 specification
The DSP specification should provide its own ODRL profile. This profile should consist of a Json Schema and Json-Ld context that restricts ODRL's expressiveness to meet DSP use cases. The ODRL Json-Ld context will fix problems in the existing ODRL context and limit the number of terms.
The DSP and ODRL Json-Ld contexts will be extensively verified using automated tests. These will consist of roundtrip testing that involves performing Json-Ld expansion and compaction on DSP messages and verifying the output against the associated Json schema. This roundtrip testing will validate the correctness of the Json-Ld contexts and terms and also ensure that non-Json-Ld-aware and Json-Ld-aware implementations can interoperate.
Json schema and Json-Ld contexts should be published as artifacts by an automated build

Repository Contents and Next Steps
The repository contents perform steps 1-5 listed above (step 6 has not yet been implemented). If this approach is acceptable, we can decide whether the repository should be merged into the main specification repo or remain a standalone repository under the DSP project. At that point, the specification text can be updated to directly reference the verified examples and incorporate error corrections (cataloged below). The published schema artifacts will then be available to be used by the TCK and implementation projects.

The schemas are based on the existing repository schemas. I have fixed bugs and aligned the examples. Here is an list of the changes made:
catalog-schema 1.json

Made all @context values an array:

  "@context": [
    "https://w3id.org/dspace/2024/1/context.json"
  ]

Removed foaf:homepage reference as it is not mandatory.

dataset-schema.json

Removed all dct term except dct:format as they are not mandatory.

dataset.v2.json

Removed all dct terms except dct:format.

contract-schema.json

Removed Action enum and made it a string.
Constraint is now modelled as a LogicalConstraint or an AtomicContraints. LogicalConstraint types are an object with a property array containing items of type LogicalConstraint or AtomicContraint (the schema supports recursive nesting).
Removed LeftOperand enum and made it a string as the enum does not allow custom policy expressions.
Made RightOperand a string, object, or array. See profile below for statement on why only string needs to be supported.
Moved assigner and assignee to Agreement type from AbstractPolicyRule. Removed AbstractPolicyRule type as it is empty.  Adjusted PolicyClass, MessageOffer, and RuleClass to remove allOf since AbstractPolicyRule no longer exists.
Removed RuleClass as it is not used
Removed minItems on Permission.constraint property as constraints are not required per the ODRL spec. For example, it should be possible to write:

     {
		  "@id": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88",
		  "@type": "Agreement",
		  "target": "asset:1",
		  "assigner": "did:web:provider",
		  "assignee": "did:web:consumer",
		  "permission": [
			{
			  "action": "use"
			}
		  ]
	}

Removed ODRL rightOperandReference as it is not mandatory in the specification and is potentially dangerous since it may require policy evaluators to download data from external endpoints.
Added lteq to operator enum.
Removed the requirement for assigner for Offer and MessageOffer types (only required for Agreement type).
On PolicyClass, changed profile from Reference type to a string or array. This does not require it to be an array and can be a string. Also, this does not require it to be in @id form. For example, previously had to be expressed as:

 "profile": [
    {
       "@id":"https://test.com/profile"
    }
    ],

now it can be:
"profile": "https://test.com/profile"

Made leftOperand, rightOperand, and operand properties required on Constraint type.
Removed @id from Duty

dataset-schema.json

Added @id to Resource
Made distribution required on Dataset
Made  theaccessService property of Distribution be either a string or a DataService

catalog-schema.json

Introduced RootCatalog, which contains the mandatory participantId. Child Catalogs should not contain participantIds.
Added the catalog property containing nested Catalog types. This is required to support nested catalogs as specified by DCAT 3.

contract-request-message-schema

Added improved constraints for offer property

contract-offer-message-schema.json

Added improved constraints, including target
Corrected message examples

contract-negotiation-error-schema.json

Removed  "dct:description" property

contract-agreement-message-schema.json

Fixed examples (e.g., operator instead of operand)

transfer-request-message-schema.json

Changed endpointType from DataAddress as it is not mentioned in the spec (other than the examples) and is not needed as this can be inferred by the dct:format of the request

ODRL profile

Added ODRL context to fix a number of problems: redefinition of @id as uid, fix neg typo to neq
assigner and assigner MUST only be specified on type Agreement. For example, not allowed on type Offer as seen here
target can only be specified on the Agreement type and not on an Offer or any other property types such as Permission
properties not in schema (e.g. rightOperandReference) do not need to be supported
Made rightOperand a literal string. IRIs, arrays, and object types do not need to be supported but could be.
Removed all other terms that are not required.

Open Questions (dataset-schema.json)

Do we want to support  the servesDataset property on DataService? Increases complexity for catalog handling datasets can be contained directly in the catalog or the DataService?

TODO

Remove assigner from all example offer and message offer files. The property should only be present in Agreement. For example, dataset, catalog, and offer examples.

In general, I agree with a lot of the points mentioned.
But a couple of remarks come to mind after a quick look:

The DCAT schema/context is now very limited, which indeed helps interoperability right now. But I foresee that additional properties will be used, both from DCAT (v3) and outside (e.g. HealthDCAT-AP). Which would require an additional set of schemas and context definitions to prevent a situation where part of the document is without prefixes and another part is with prefixes. So I would suggest to include at least DCAT v3, and make sure to document in e.g. the best practices how to properly deal with inclusion of additional functionalities.
Similarly, for ODRL, additional profiles that describe the specific operands/operators will be required for actual usage.

Will have a closer look later on.

In general, I agree with a lot of the points mentioned. But a couple of remarks come to mind after a quick look:

The DCAT schema/context is now very limited, which indeed helps interoperability right now. But I foresee that additional properties will be used, both from DCAT (v3) and outside (e.g. HealthDCAT-AP). Which would require an additional set of schemas and context definitions to prevent a situation where part of the document is without prefixes and another part is with prefixes. So I would suggest to include at least DCAT v3, and make sure to document in e.g. the best practices how to properly deal with inclusion of additional functionalities.
Similarly, for ODRL, additional profiles that describe the specific operands/operators will be required for actual usage.

Will have a closer look later on.

I would like us to recommend industries, dataspaces, etc. create profiles that have additional Json-Ld contexts, policy definitions, etc. To your point, we should create a document providing a guide to how this is done. Implementations can (optionally) provide facilities for configuring these additional contexts (if they are Json-Ld-aware) or simply process the properties if they use plain Json.
I want to move these terms (particularly the ODRL ones) out of the core DSP specification because they have no normative semantic definition and are therefore not verifiable. Many are also very industry-specific and are often not applicable.


Update Composer dependencies (2020-09-17-00-13)

Visual regression test passed!
View the visual regression test report


Run iOS simulator install as root

Description

Provide details of the change, and generalize the change in the PR title above.

The xcodes install can fail when not run as root, so do so.

Testing

Describe how you've tested these changes. Link any manually triggered Integration tests or CPP binary SDK Packaging Github Action workflows, if applicable.

Type of Change
Place an x the applicable box:

[ ] Bug fix. Add the issue # below if applicable.
[ ] New feature. A non-breaking change which adds functionality.
[x] Other, such as a build process or documentation change.

Notes

Bug fixes and feature changes require an update to the Release Notes section of release_build_files/readme.md.
Read the contribution guidelines CONTRIBUTING.md.
Changes to the public API require an internal API review. If you'd like to help us make Firebase APIs better, please propose your change in a feature request so that we can discuss it together.

BTW the time this failed was when I ran "full" tests so you might need to do that...


Potential copy/paste error in script

In the getArtifactoryComposeYaml function in the art-compose file there is this line:
        echo "Getting ${COMPOSE_FILE}"
        curl -# -o ${COMPOSE_FILE} ${ART_COMPOSE_YML} || errorExit "Getting ${DB_DRIVER} failed"

I'm guessing it probably should be something like this:
        echo "Getting ${COMPOSE_FILE}"
        curl -# -o ${COMPOSE_FILE} ${ART_COMPOSE_YML} || errorExit "Getting ${COMPOSE_FILE} failed"

@wsbpress - good catch. I will fix this and close this once done. Thanks for the sharp eye!


Storybook won't start without file-loader dependency installed

Trying to run yarn storybook from a fresh development branch install fails:

After adding missing dependency it works

Travis automatic deployment:
https://pr56--safereactcomponents.review.gnosisdev.com

@alfetopito, thanks!
I'm not sure if adding a dependency of a dependency is the solution, tho.
Funny thing, I fixed the same issue with a different approach: by downgrading webpack to the previous version. https://github.com/gnosis/safe-react-components/pull/55/files#diff-b9cfc7f2cdf78a7f4b91a753d10865a2R69
... and now I see there's a 0.44.1 that may fix this seamlessly.

@alfetopito, thanks!
I'm not sure if adding a dependency of a dependency is the solution, tho.

I'm not sure it qualifies as a dependency of a dependency.
It's used directly on https://github.com/gnosis/safe-react-components/blob/b83b411442aefba7b8335baa247bb9dbc872a9ec/webpack.config.js#L22 as well as the storybook webpack config https://github.com/gnosis/safe-react-components/blob/b83b411442aefba7b8335baa247bb9dbc872a9ec/.storybook/webpack.config.js#L18

Funny thing, I fixed the same issue with a different approach: by downgrading webpack to the previous version. https://github.com/gnosis/safe-react-components/pull/55/files#diff-b9cfc7f2cdf78a7f4b91a753d10865a2R69
... and now I see there's a 0.44.1 that may fix this seamlessly.
Edit: no, it didn't worked

Now if you say this should come bundled with Webpack, then I agree.
But is it?
For example, dex-react also sets it as a dev dependency https://github.com/gnosis/dex-react/search?q=file-loader&unscoped_q=file-loader

If you inspect yarn.lock it seems that we have two file-loader installed, one is a dependency of storybook core and one is the one we explicitly add as a dep. Looks like it was working previously because of that storybook dependency. I think it's good to include it in our dependencies list if we depend on it.

I'm not familiar with your team's dev practices, I can leave it up to you to merge it.
Otherwise I can do it if you don't mind and tell me which I should pick:

That is, if one approval is enough.

@alfetopito usually we squash to dev and a regular merge to master


Upgrade chrono from 0.3 to 0.4

Also fix a compiler warning.
Makes downstreams have one less dependency if they use other crates whose chrono dependency is at 0.4 as well.

Released

Thank you! ❤

Thank you :)


Uncaught exceptions during tests

Seems like uncaught exceptions during tests can be a problem for mocha-parallel-tests. When mocha run() function is invoked, this code is executed: process.on('uncaughtException', uncaught);. uncaught is a function which detects which tests is currently running and either fails it or writes "uncaught error outside tests". In case of parallel running suites uncaught function doesn't know which file does this exception come from.

mocha-parallel-tests@v2 runs all tests in separate processes so this is fixed now.


broken spawnpoints

we got the problem that for example some people that arent supposed to spawn in the Nether, do spawn there sometimes even with a bed. As Blaze you sometimes spawn at your Respawn point sometimes not, but you spawn in the Nether.
(I dont know how to describe it more, hope it helps a bit)

Having this problem right now too, any solutions?


chore: release 0.22.0

:robot: I have created a release *beep* *boop*
0.22.0 (2022-02-28)
Features

improve focus for search bar (e4ede16)

This PR was generated with Release Please. See documentation.

Coverage remained the same at 76.61% when pulling 988d2b7bae6733e7ea4d55935144980980eaea20 on release-v0.22.0 into 4bab32d1d9fb2da3bf78b86915a1b1883f1df1c9 on master.

:robot: Release is at https://github.com/easyops-cn/docusaurus-search-local/releases/tag/v0.22.0 :sunflower:


Use vi over nano where appropriate in alpine base

It would be good to have this carried over to Ubuntu too.

@onedr0p ubuntu image installs vim-tiny and doesn't have nano installed at all.
Just doing this in alpine because the base image comes with vi already it isn't added or anything.
Do you want to add nano to the ubuntu image?

Ah you're right I'll have to think about making this more consistent. For now this is good but the changes won't take effect immediately.


L7 attack doesn't seem to have any effect

Hi, hello, L7 attack doesn't seem to have any effect, I tried most methods, is it the wrong way I use?

Same :((((

Ddos guard currently blocks almost all of the methods.

I try it on cloudflare and still not working after update :((((

I am also the

Only a few seconds of each attack are valid attacks

because cloudflare block second request of the same proxy i think

What's the meaning? Is there no way to bypass the cdn?
------------------ Original ------------------
From: Monkeyman1337s @.>
Date: Fri,Mar 4,2022 5:50 PM
To: MHProDev/MHDDoS @.>
Cc: smile @.>, State change @.>
Subject: Re: [MHProDev/MHDDoS] L7 attack doesn't seem to have any effect (Issue #162)
because cloudflare block second request of the same proxy i think
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you modified the open/close state.Message ID: @.***>

CFBUAM  have no effect

DDOS GUARD fixed all bypass methods

Solution: https://docs.python.org/kolm


Passing options to gridsome remark

Hello, I am trying to pass options to transformer-remark. Specifically I would like to turn footnotes on ( https://github.com/remarkjs/remark/blob/master/packages/remark-parse/readme.md#optionsfootnotes ).
Setting it in gridsome.config.js does not seemto work:
  transformers: {
    //Add markdown support to all file-system sources
    remark: {
      // ...
      footnotes: true,
    },

Is this currently possible, am I missing something really stupid?
Thanks

UP !
Is there anything new about this problem? I'm having the same problem, and I really need a solution to support the footnotes in Gridsome :/


animationTabBarHidden black space ios 12

I tried to hide the tab bar in viewWillAppear by casting the tabBarController to RAMAnimatedTab... using animationTabBarHidden and show it back when viewWillDissapear. It hides, but leaves a black space.

you also set hidesBottomBarWhenPushed to true

does not work Please?

If I set the hidesBottomBarWhenPushed  to true and the tab bar appear again the bar items go behind the bar @0ber

Why did you close it @0ber? It doesn't work

Look for example it works https://github.com/0ber/AnimatedTabBar-Pod-Test/tree/feature/HideTabBar


10x+ memory usage in https vs http

PHP 7.4.12 / Amphp 4.5.2
This is not a leak, but a stable excessive (10x+) memory usage in https vs http.
There should be some overhead, but 10x+ is likely due to something wrong and very avoidable.
This is the minimal code to replicate the problem (make sure there is no cache):
use Amp\Http\Client\HttpClientBuilder;
use Amp\Http\Client\Request;
use Amp\Loop;

Loop::run(function () {
    /**
     *   http      2-4 MB RAM, depending on OS.
     *   https   40-48 MB RAM, depending on OS
     *
     *   Try both below:
     *   (example.com is an actual working server)
     */

    $url = 'https://example.com';

    $client   = HttpClientBuilder::buildDefault();
    $promise  = $client->request(new Request($url));
    $response = yield $promise;
    $body     = yield $response->getBody()->buffer();

    echo 'Mem: ' . memory_get_usage(true) / 1048576 . ' MB';
});

This is caused by the lookup table in amphp/hpack. Enable FFI and install nghttp2 or enable opcache, so the lookup table stays in shared memory.

Cache solves almost everything, that's why I suggested to test without it — hoping the problem under the hood can be fixed. Nether React, or Guz, or any other established async client do not have this issue.
I like Amp more than any of those, but this isn't right.

Curl implements hpack natively. React doesn't support HTTP/2 at all. Amp can use native nghttp2, too, if you enable FFI, but falls back to a quite large lookup table. If you're able to optimize that lookup table, a PR is welcome.
You can also disable HTTP/2, then no lookup table will be present in memory.

I am not able to optimize even my sleep schedule, kelunik — hoped this was an easier problem — some dev leftovers etc. If it cannot be fixed with ease, hell with it then.

The HPack lookup table is quite large. It is generated only once and kept in memory for performance. There's not really a way around this to implement HTTP/2 in pure PHP, it's a necessary evil. A few MB of RAM is a reasonable trade-off for the performance gain. As @kelunik suggested, the memory use can be avoided with FFI or opcache.

I got it now that it's not an easy problem to solve without cache, just didn't know it before posting.
Besides the old Artax project of yours, which is natively HTTP/1.1, what's the way to disable HTTP/2 in here?

I mean I can just comment $protocols[] = 'h2' out it in  DefaultConnectionFactory.php, but I seem to miss an API option if there is one. I'm testing 12 clients at the moment, might have missed it, sorry. Is there one?
Have to run it on a micro-setup, where FFI-to-nghttp2 or memory cache is not an option, sadly.

You can set the protocol versions on the request to ['1.1'] only.

Right, in private $protocolVersions = ['1.1', '2']. Not an API, but smarter. Thank you, @kelunik
Still testing, but literally nothing out there is faster than Amphp, by a huge margin. On my tests you are 2.5x (avrg) times faster than the next best client. You guys are simply rockstars!
And this quick HTTP protocol fix can solve quirks even in such rare cases like mine. Closing this, with huge respect.

The protocol can be set on each request using Request::setProtocolVersions(['1.0', '1.1']) if you'd like to exclude HTTP/2. You can do this for each request or create a NetworkInterceptor that does this and attach it when building the client.

Oh. Thank you, all the APIs of the clients I'm testing atm sort of merged into a one messy blob, and I've missed this one. Huge thanks!

Sorry, meant ApplicationInterceptor. Updated my comment.

Oh. Thank you, all the APIs of the clients I'm testing atm sort of merged into one messy blob, and I've missed this one. Huge thanks!

No problem, you're welcome! The number of options you can tweak is actually a bit overwhelming, it's easy to miss things.

<3 @kelunik @trowski & everyone contributing — you rock hard!

In fact, you don't even need to create an entire interceptor, you can use ModifyRequest:
$httpClientBuilder->intercept(new ModifyRequest(function (Request $request): Request {
    $request->setProtocolVersions(['1.0', '1.1']);
    return $request;
});

So simple!


Search for event handling methods when passing instance to event bus

Note that I'm only going to talk from a Forge perspective here since I don't know any of the other systems in-depth.
It sometimes may happen that you register the wrong class to an event bus, making you wonder why your handlers are not called. To mitigate this issue, arguments for EventBus.register could be inspected, displaying a warning whenever a class is used which does not have any methods annotated with @SubscribeEvent. This obviously can't catch cases where the wrong class with @SubscribeEvent methods is passed, but it would help a great deal either way!

This can be handled in all three major platforms.


Is slice function supported?

I need to fetch a paged list of comments embedded in a post document, here's my code:
{_id:#},{comments:{$slice:[#,#]}}
It works in the mongo client but not in the play jongo, how can I implements a normal pagination in the embedded object array?

@winglight This question refers to jongo itself, please ask there.


Macros @call_rule and @marginal_rule are broken for Delta node

NOTE

A bit of a context for the history:
Currently ReactiveMP cannot properly resolve a collection of messages in @call_rule macro for a node that can have a variable number of inputs. It happens because the collection of messages from a variable number of inputs is stored in a Tuple, so for rule it must be a Tuple of Messages. @call_macro, however, does not treat Tuples  any differently from any other input and converts it to a Message of Tuple which triggers a "rule not found" error. The solution in the upcoming PR is to replace Tuple with an auxiliary ManyOf structure, for which we would have a better dispatch control.

The fix has been merged.


chore: add 0.3.0

from https://salsa.debian.org/black_desk/semver debian/latest

/check obs

/check obs


Draggable cards size.

Is your feature request related to a problem? Please describe.
The Cards size is static and unique for all plugins. When content gets overflowed it gets scroll-able.

All the plugins follow the same width and height as it is static.
Required Behaviour:
Making the width and height drag-able ( i.e increasing or decreasing height/width)  would be a great add-on.

Describe the solution you'd like 💡
Assign min-width and min-height and providing ability to the user to change the width/height via simple click and drag.

@goliakshay357 This is a good issue but can you elaborate it more?

Hey @sakshikhachane,
You are already assigned to one issue. Would you like to work on both?

@goliakshay357 I can work on this now as I have completed the work to be done on another issue.

@goliakshay357 I can work on this now as I have completed the work to be done on another issue.


ENV2023-09-18 2 new German RLABOs

for the screens of CW 2005, 2006 and 2007 for DOME, I get the error of invalid RLABO/SLABO Codes. The codes are:

WSAC (Wasser- und Schifffahrtsamt Cuxhaven (EDMO 1178))
WSAW (Wasser- und Schifffahrtsamt Wilhelmshaven (EDMO 2314)

Those codes are defined in our RLABO codelist, but apparently missing in the ICES RLABO list...
Is it possible to add those codes to your RLABO and SLABO list?

Codes are not in use in RLABO yet


I built a site with Eleventy!

Well, I didn't, really. This one is on behalf of @shannonethomas:
{
	"url": "https://shannonethomas.com/",
	"name": "Shannon E. Thomas",
	"description": "A gallery of techno surrealistic paintings.",
	"source_url": "https://github.com/shannonethomas/shannonethomas.com-v6",
	"twitter": "shannonethomas",
	"featured": true
}

please close this issue because the site already exists


Getting 'Search' icon instead of 'CROP' in top right corner

Same here, except it's not a search icon. It seems to pull a random icon from the drawables folder. Also it seems to happen intermittently. Sometimes when I compile and the run the CropImage activity I see the old CROP text, but if I close the activity and reopen it I see an icon from the drawables folder where the CROP text should be. Weird.

Are you using the latest version?
Is it on specific devices?

Yes, latest version of Android Image Cropper. Running on Galaxy S5 with Android 6.0. It's only when I don't set a crop_image_menu_crop drawable. Ultimately, I just made a crop_image_menu_crop drawable that says "CROP" and it works.


Show account initialization notice in PT, reporting and disputing modals.

Only show initialize wallet alert/bell notification when user is specifically initializing a wallet. Not when initialization happens as part of other transaction.
Decided to show notIce banner for purchasing participation tokens, reporting and disputing. These use estimate gas calls and will show a high transaction fee.

All looks good. closing


Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions

I am getting this error in UIColorExtension.swift file, please see the screenshot attached
I have Xcode Version 9.1 (9B55) and compiler is set to swift 4

Hi, @m-irfan
This problem already resolved ver. 2.0.0 or later.


ICM: Enable HTTP/2 protocol by default

PR Type
[ ] 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
[x] Application / infrastructure changes
What Is the Current Behavior?
Currently HTTP/1.1 is used by the webserver / webadapter.
Issue Number: Closes #69637 (Azure Issue)
What Is the New Behavior?
HTTP/2 is enabled by default in webadapter version 2.4.0 and can be disabled if required with the disableHTTP2 configuration value or environment variable ICM_WEBSERVER_DISABLE_HTTP2 respectively.
Does this PR Introduce a Breaking Change?
[ ] Yes
[x] No

Much better now..
Since you changed the icm-web chart you also have to increase the version in it's Chart.yml. Same lasts for the .bumpversion.cfg.
Next would be to also adjust the requiments.yaml of the icm-chart and also increase it's own version. And the last step then would be icm-replication.


Extract OutputChain

I've extracted OutputChain from output.rb.
And I also keep to be able to run tests test_output alone.

Can we merge this?

LGTM


Build new API-only application for receiving and enqueuing webhook "events"

I'm thinking this will all run in Docker containers.

Falcon
envparse
beanstalkd

I'm pretty sure this got resolved before the 2019 Freezing Saddles competition began, this is what the freezing-sync project does now, right @hozn ?

The way this ended up working:

Strava has a webhook registered that pushes events to http://hook.freezingsaddles.org/.
The producton docker-compose setup maps that from NGINX to a listener freezing-nq that parses the incoming messages and pushes them into beanstalkd. This is a very fast operation, and it's a good idea to decouple the listener from the processor that does heavy lifting.
The freezing-sync container polls beanstalkd for mesages and processes them, inserting records into the MySQL database

Once the records are in the database the freezing-web container does queries that aggregate the data on each request for the leaderboards.


"Toggle Line Comment" doesn't work as expected while multi-line selected

VSCode Version: 1.3.1
OS Version: Windows 10

Steps to Reproduce:

Select the lines with both commented lines and un-commented lines
Execute "Toggle Line Comment"

Original Text:

// line 1
line 2

Current Result:

// // line 1
// line 2

Expected Result:

line 1
// line 2

This is the designed behaviour. Ctrl-/ which is Toggle Line Comment will:

examine all selected non-whitespace lines
if all the non-whitespace selected lines begin with the line comment token, then it will remove this line comment token from the lines (acts as remove line comment).
otherwise, it will insert the line comment token to all the lines (acts as add line comment).

Thus it has the name "toggle". It does not do individual line toggle. You can always use multicursor ops to achieve that: ctrl+alt+down to the lines or shift+alt+drag and then run ctrl-/. This will execute this logic for each individual line.


Bug fixes for python3.5

As of python3.2, xmlrpclib becomes xmlrpc.client,
Removed .pyc files
In some instances was running into a KeyIndex 'name' not found.  Added exception handling.

thanks @danbgray hope this has been helpful for you. Good catch on the module import, will also add future to requirements


Problem with building with make install with latest source code on Amazon Linux 2

When building from source using "make install" on Amazon Linux 2 with go version 1.18.9 getting a message that seems to be related to recent change checked in 4 months ago.
go: downloading golang.org/x/text v0.3.7
# github.com/kahing/goofys/api/common
api/common/panic_logger.go:69:27: FusePanicLogger.BatchForget redeclared in this block
        api/common/panic_logger.go:41:27: other declaration of BatchForget
make: *** [install] Error 2

Prior to that I tried using the go install but got this.
go: downloading github.com/tklauser/numcpus v0.6.0
# github.com/kahing/goofys/api/common
../work/pkg/mod/github.com/kahing/goofys@v0.24.0/api/common/conf_azure.go:272:35: accountsRes.Value undefined (type storage.AccountListResultPage has no field or method Value)
../work/pkg/mod/github.com/kahing/goofys@v0.24.0/api/common/conf_azure.go:373:67: not enough arguments in call to client.ListKeys
        have (context.Context, string, string)
        want (context.Context, string, string, storage.ListKeyExpand)

same here


Why not show the latest releases in github "releases"?

Describe the bug
Today I was updated SK to 1.6.0 and the latest release shows in github releases is 1.5.5. It is very useful to know the changes.

Thanks
Reproduction
No reproduction available
Logs
No response
System Info
System:
    OS: Linux 3.10 CentOS Linux 7 (Core)
    CPU: (4) x64 Intel Xeon Processor (Skylake, IBRS)
    Memory: 577.67 MB / 15.51 GB
    Container: Yes
    Shell: 4.2.46 - /bin/bash
  Binaries:
    Node: 16.15.0 - /usr/bin/node
    Yarn: 1.22.19 - /usr/bin/yarn
    npm: 9.2.0 - /usr/bin/npm
  npmPackages:
    @sveltejs/adapter-node: ^1.2.0 => 1.2.0
    @sveltejs/kit: ^1.5.6 => 1.5.6
    svelte: ^3.55.1 => 3.55.1
    vite: ^4.1.1 => 4.1.1

Severity
annoyance
Additional Information
No response

Short version: The next versions we release should hopefully be tagged. We shall see when the next release happens. I don't know that we want to retroactively manually tag the couple of versions that we missed, though.
Long version: At one point, the automatic release job started publishing a couple of internal packages that we didn't actually want published to npm. I had manually unpublished those from npm, but the release job continued to try to republish them. Since npm prevents republishing the same version of a package that had previously been unpublished, these publishes failed. Apparently, the way the GitHub action doing the publishing and tagging is written, if any of the npm publishes fail, it doesn't push the tags to Git or create a release in GitHub, even for the npm publishes that succeeded. Since the last releases, we have merged #9051, which should address the issue where we were trying to republish version that we had previously unpublished from npm, which should in turn start creating tags in Git and releases in GitHub.

@Conduitry thanks for the clarifications. Close the issue


Cannot seem to download images.

Hi, so i have recently encountered a problem. I downgraded the client to the previous version due to the newest one closing as soon as i try to open it. When i am able to get logged into the previous version, it does not seem to be able to download an image posted in the channel specified. It won't even download when i post it in myself; it instead shows as typing, before simply going away.
I understand this is an older software, and has its fair share of issues. Any help towards resolving this would be greatly appreciated.

Bro me neither can't. I even can't run it insta closes on every version to me after 2nd attempt to run it.

This project is outdated, use https://github.com/get-got/discord-downloader-go/


Updating CUDA packages to be Pytorch>2.0 compliant

Most of these changes are from this repo: https://github.com/sachit-menon/GLIP
I'm trying to use DesCo-GLIP for some downstream tasks, and it's really annoying that it doesn't work with PyTorch > 2.0 or Python > 3.10. The core issue seems to be outdated CUDA packages. This fix updates the CUDA packages to be compliant with Pytorch > 2.0.
After fix:
$ git clone git@github.com:liunian-harold-li/DesCo.git
$ install packages as usual but install Pytorch 2.2.1.
$ conda list | grep torch
...
pytorch                   2.2.1           py3.10_cuda12.1_cudnn8.9.2_0    pytorch
pytorch-cuda              12.1                 ha16c6d3_5    pytorch
torchaudio                2.2.1               py310_cu121    pytorch
...
torchtriton               2.2.0                     py310    pytorch
torchvision               0.17.1              py310_cu121    pytorch

$ python setup.py clean --all build develop --user
<builds successfully>

Also, forgot to mention:
$ g++ --version
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Aug_15_22:02:13_PDT_2023
Cuda compilation tools, release 12.2, V12.2.140
Build cuda_12.2.r12.2/compiler.33191640_0


Display

This implements a display module with basic functionality that is useful to view deblender results.
It includes the creation of a class Asinh, which can be used in matplotlib in the following way:
asinh = scarlet.display.Asinh(vmin=0, vmax=10, Q=20)
plt.imshow(img, norm=asinh)
plt.colorbar()
plt.show()

which displays the image img using an arcsinh stretch, and an appropriately scaled and labeled colorbar.
The module also includes a method to convert an image (or deblender model) into an RGB color image that can be displayed in matplotlib. For example if blend is the deblender output:
img = blend.get_model()
rgb = scarlet.display.img_to_rgb(img, vmin=0, vmax=np.max(img)/2, Q=50, filter_indices=[3,2,1])
plt.imshow(rgb)
plt.show()

will show a color image of the model.

Please remove the import from __init__.py because this code needs to run on headless machines (or more general: one some without mpl)


Feature request: copy text from terminal

seem to be able to copy text from terminal (cntrl-c aborts daedalos terminal process or triggers host browser debugger)

If you highlight the text and right click it, that copies in supported browsers.


r618-13

the R618-13 allows probability of the attenuation being exceeded in the range 50% to 0.001%. Therefore the warning message:"RuntimeWarning: The method to compute the rain attenuation in recommendation ITU-P 618-12 is only valid for unavailability values between 0.001 and 5" need to be corrected.

rain attenuation is up to 5%, total attnuation up to 50%.

As luisemiliani mentioned, the warning originates because the rain attenuation method described in ITU-R P.618 is recommended for values of p in [0.001%, 5%], even the total attenuation can be computed up to 50%.


not showing in the plugins list

I just installed the kong-oidc and add the plugins through configuration file. but it doesnt show up in the plugin list. can someone guide me the proper way of adding it to kong?

hello, Add it with the curl command, visible in the doc (taking care to replace the ${} ) :)
documentation
curl -s -X POST http://localhost:8001/plugins \    -d name=oidc \    -d config.client_id=kong \    -d config.client_secret= ${CLIENT_SECRET} \    -d config.bearer_only=yes \    -d config.realm= ${REALM} \    -d config.introspection_endpoint=http:// ${HOST_IP} :8180/realms/ ${REALM} /protocol/openid-connect/token/introspect \    -d config.discovery =http:// ${HOST_IP} :8180/auth/realms/ ${REALM} /.well-known/openid-configuration \    | python -mjson.tool
If with python -mjson.tool it doesn't work try python3 -mjson.tool


Support MLFlowLogger with only the mlflow-skinny dependency installed

Bug description
Sorry not sure to label this as a "feature" or a "bug":
mlflow-skinny is a variant of the mlflow library that installs the bare-minimum required for tracking: https://pypi.org/project/mlflow-skinny/
As far as I can tell, this meets the requirements for using the MLFlowLogger, but currently it doesn't work because:
https://github.com/Lightning-AI/lightning/blob/4a802e00a843264afd5aea023d8475d4f1b4d360/src/pytorch_lightning/loggers/mlflow.py#L40
checks that precisely the mlflow library is installed.  If this line were replaced with:
_MLFLOW_AVAILABLE = RequirementCache("mlflow>=1.0.0") or RequirementCache("mlflow-skinny>=1.0.0")

It seems to work fine.
Should I make a PR for this?  Would we want to add separate tests for mlflow and mlflow-skinny environments?
How to reproduce the bug
No response
Error messages and logs
No response
Environment
No response
More info
No response
cc @borda

Sounds good to me. You will probably need separate variables for each check in case some features are not supported with the skinny version

Why was this merged on 2.0 if it was broken on 1.9?

@adeandrade We only include bug-fixes in the 1.9.x releases. And this wasn't considered one because it's adding support for this alternative MLFlow package. Does our Logger not work with mlflow installed?

pytorch-lightning was working with mlflow-skinny on 1.8 and it broke on 1.9 but I guess mlflow-skinny was not considered before. It's OK. I'll stick to 1.8 until 2.0 is released.


Merge compiler changes

Bring Merlin up to date with Flambda commit 47edce8a3ec5b9ea699628aa1d88697254cfc8a4

How should we review this? It doesn't look like the conflicts were checked in. So my instinct is to skip the first two commits and review the rest. Does that sound right, @liam923?

How should we review this? It doesn't look like the conflicts were checked in. So my instinct is to skip the first two commits and review the rest. Does that sound right, @liam923?

@goldfirere Yes. There were no actual conflicts, which is why there's no commit resolving conflicts. The first to commits were simply the result of the import script. Everything after that is manual resolution of other errors (type errors, failing tests, and handling new flags).

Great. Reviewing now.


Text search - sort and limit

Currently the text search will return EVERYthing that matches any word typed. That will eventually get insane. So, sort by score and limit the results.
This would be a good place to look into pagination too, but that's way in the future. It hurts my mind right now.

old repo - clearing issues


Always show caption?

Hi guys,
I was wondering if it's possible to always show the caption under the photo..
Thanks in advance!

There's no implementation for this! sorry about that.
pull request is welcome.


[Action] Use a script file to automate pending translations

Description
Here we have to move the current script to detect pending translations from the workflow to a script inside the website directory.
Outcome
A script called pending-translations.sh that has the current implementation to detect the pending translations. Also evaluate the potential of this script as translation.sh    --dry-run --debug for testing purposes.
Evaluate the next behavior for the script

Have minimal maintenance, adding new translations in the future. We could for example look at the repository and check the folder names https://github.com/cncf/tag-env-sustainability/tree/main/website/content - we have a folder en & zh & es &de, we establish a base with en (we dont need to open a PR for en since its already merged). This could eliminate referencing languages in the script.

Assigning people over groups could work this way too. We assign tag-env-translators- so for example tag-env-translators-es.

To reduce duplication we should look into possibilities to loop through the list of issue templates and for every entry trigger a "Create issue" action instead of duplicating the action for a single file. I think that you can achieve something close to running an action in a loop with matrix in GH Actions. Should we create a task for this?

We should also look into storing supported languages (that you store in languages variable) somewhere more visible, outside of the workflow, where the list can be retrieved from, like a separate file for instance. Or even let the script check the website/content folders for languages and dynamically generate the list with languages from it. In that case we can potentially avoid relying on someone remembering to manually update this list in this script based on new languages being added. Show we create a task for this or maybe consolidate it in the same task with the previous point?

Should we also create a first, pilot, reviewer group for one of the languages? Maybe we should have a task for it as well so that we can create translator groups once you feel the automation is ready? So that we can avoid potentially spamming folks in the beginning, while automation is still being tested and maturing.

To-Do

[ ] Move the code inside .github/workflows/check-outdated-content.yml to website/content/translation.sh
[ ] Test the script translation.sh
[ ] Add --dry-run
[ ] Add --debug
[ ] Evaluate the execution as translation.sh    --dry-run --debug
[ ] Create the groups to assign the translations

PR reference https://github.com/cncf/tag-env-sustainability/pull/407
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Comments
This issue is part of the next steps for the issue https://github.com/cncf/tag-env-sustainability/issues/325

@claire-fletcher I think that you can assign me hehehe

@claire-fletcher I think that you can assign me with @Dianmz

I have assigned you but for some reason can't currently assign @Dianmz :thinking:


added osqp_eigen_vendor

hey, recently came across this repository and thought it would be helpful to have a vendor for osqp-eigen, too. This PR is by no means perfect, but maybe something along these lines is desired. The main changes are

Added umbrella package osqp_vendors
Added osqp_eigen_vendor, in accordance to osqp_vendor
Update folder structure accordingly

Thanks

include directories are not correctly exported #11

header files are not correctly declared #12

@esteve cc @wep21 Could you review this, please? :pray:

I tried a PR in osqp/osqp#401 to fix this, with little success. The authors of osqp do not want to adopt it. One could globally set the include directories in osqp_eigen_vendor to include/osqp, which is a bit hacky in modern CMake standards.

I tried a PR in osqp/osqp#401 to fix this, with little success. The authors of osqp do not want to adopt it. One could globally set the include directories in osqp_eigen_vendor to include/osqp, which is a bit hacky in modern CMake standards.

Thanks for submitting the PR there, it's too bad they don't want to accept the change. Instead, we can patch the vendor package for osqp-eigen so that it uses the include path from osqp_vendor. However, I just checked and osqp_vendor does not seem to have any published dependant packages (https://index.ros.org/p/osqp_vendor/#foxy-deps). We use osqp_vendor in Autoware, though.
@wep21 what do you think? Should we export the osqp.h header the same way as upstream osqp? (i.e. #include <osqp.h> instead of #include <osqp/osqp.h>)

in the develop-1.0 branch, the authors of osqp prefix their public headers with osqp_ instead of exporting include so that osqp/*.h can be included. Maybe they will reconsider this and it is worth waiting.

l

this will probably not happen, and it might be osqp_vendor's responsibility to adapt to osqp

replaced all externalproject_add, as this seems a little easier. But also this PR will probably not go through, hence closing

maybe one more note relating the use of osqp_vendor. Looking at this CMake file https://github.com/autowarefoundation/autoware.universe/blob/97590f434e282ee34a174f082385ecd528394a59/common/osqp_interface/CMakeLists.txt#L23, it becomes apparent how difficult it is to use osqp_vendor in practise. I think this partially arises from the osqp target not being used in accordance with osqp

I think due to comments by @traversaro, this might be heading somewhere useful


Is it possible to get query paramaters with useRouter() when rewriting with _middleware.ts ?

When rewriting through next.config.js as explained here https://nextjs.org/docs/api-reference/next.config.js/rewrites it was possible to get query parameters from useRouter().query but when using rewrites via _middleware.ts with NextResponse.rewrite(path) as shown in this example https://github.com/vercel/examples/blob/main/edge-functions/hostname-rewrites/pages/_middleware.ts useRouter().query is an empty object.
Or is the only way to access paramters from context.params using getStaticProps or getServerSideProps  ?
Thanks.
Edit : Seems related to #55 , when I export getStaticProps or getServerSideProps, even without returning context.params useRouter().query is populated but if not I got the error described there and an empty object.

I'm quite late but:

Or is the only way to access paramters from context.params using getStaticProps or getServerSideProps ?

Yes, that's the only way as in those two scenarios because the query object data isn't coming from the browser but from the build (getStaticProps) or the incoming request (getServerSideProps), if the page is static then there's no way to know about dynamic params before hydration (meaning you can only know the query params after the initial render)


Add another error code for retry of Cosmos DB service on the timeout transient faults

Description
Add 408 (RequestTimeout) besides 503 to trigger retries for the Cosmos DB when transient faults happen.
Related issues
Addresses https://github.com/microsoft/fhir-server/issues/2732. Also related to https://github.com/microsoft/fhir-server/pull/2106 which adds retries for 503 timeout transient error.

/azp run

@rmt2021 Thank you for your contribution to the repository. I wanted to check in and see if this PR was still on your radar.

@LTA-Thinking Yes! Sorry for the delay. I will try to write an unit test and let you review.
Thanks!

/azp run

/azp run


Help with DownloadExtensionResolver in local SDK

Hi,
I have been reviewing the ticket ".MOV asset is being downloaded as .QT #991" and trying to implement this on my local SDK environment for application/postscript files that are being downloaded as .ai instead of .eps files.
Does this only work on AEMaaCS or can i test it locally ?
I am not sure on where to put the code as the example in the ticket shows a custom implementation of DownloadExtensionResolver.java, but when i am not sure what i need to put in here and if this is the right file to specify the mime type etc.
I need something like this
if ("application/postscript".equals(assetRendition.getMimeType())) {
return "eps";
}
I have the latest version of ASC 3.4.0 installed and running, any help would be greatly appreciated.

Hi @mgurney-leappoint  - yes! this should work locally. This is invoked in the via the ExpressionDownloadArchiveNamer [1] which is used "everywhere" where a zip is created.

You should have your own AEM Maven project that embeds ASC (thats how ASC gets deployed)
In that AEM Maven project, you should have a core project that contains your project's OSGi bundle (java code).
You would put your custom DownloadExtensionResolverImpl.java that implements DownloadExtensionResolver in that project as you would any other OSGi Service implementation.

Let me know if that makes sense, or if youre missing something in step 1 or 2.
[1] ]https://github.com/adobe/asset-share-commons/blob/main/core.cloud/src/main/java/com/adobe/aem/commons/assetshare/content/renditions/download/async/impl/ExpressionDownloadArchiveNamer.java

Closing - please open if you continue to have questions.


Force HyperSerial detection

Ignore ProductId/VendorId of the serial port device and force initialization HyperSerial driver. Thanks @alex-013

Hi @AstaRom
Do you think you would be able to update the translation with the new item: edt_dev_spec_forceSerialDetection? Thank you in advance.

Good evening, yes I can.
I can do it tomorrow.
Should changes be submitted to the "force_hyperserial" branch?

Great 👍 Yes, 'force_hyperserial' branch. It has already been merged with the latest translation resource changes introduced in '20rc1' branch.

Do you think you would be able to update the translation

Done.

Could you add a hint what this feature is for?
Can I set the output path to auto and hyperHDR will look for it?

On some systems (mainly due to a udev bug), the system does not report the correct ProductId and VendorId of the Pico board, and HyperHDR could not detect and initialize them correctly. Typically ProductId/VendorId have the value 0, but e.g. in RPi4 they may have the ProductId/VendorId of the USB hub. Correct ProductId/VendorId for Pico is 0xa / 0x2e8a (can be found in the logs).
As it ignores the automatic detection you rather do not want to use it with auto ( it may work if there is only one serial device).

Ok Thx, so if I dont' have any problems with the pi4 I don't need to check it, but it would not hurt?

It's better to not use this option if it is not necessary (only when the board is not detected) because it disables important check. This is a workaround for a bug in other software (mainly udev).


Get stuck on infinite redirects to /authenticate/partial

For bug reporting only! If you're posting a feature request or discussion, please ignore.
Expected Behavior
The application should not get stuck in a redirect loop between the configured application URL and the /authenticate/partial route.
Current Behavior
The app enters an infinite 302 redirect loop
Failure Information
Bounces between
/?hmac=XX&shop=XX and /authenticate/partial?shop=XX with 302s until the browser stops the redirections
Steps to Reproduce
Please provide detailed steps for reproducing the issue.

Make a new app and demo shop
Configure redirect URL in .env to /authenticate/full
Create a test plan that is billable and has 0 days free trial
Set session and cache driver to redis
Make the default URL / and add the auth.shop and billable middlewares to the welcome route
Try to add the new app to the new demo shop

Context
Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions.

Package Version: v9.0
Laravel Version: v5.8.29
PHP Version: v7.3.6
Using a toolset (Docker, Laradock, Vagrant, etc.): None

Failure Logs
Apache logs show redirects as detailed above

Thank you for the report. I wouldn't add /full to the URL, let the code handle that.
However, I've setup Laravel v5.8, Laravel Shopify v9.0, Redis for session/cache, with a plan that has no trial.
Result: https://streamable.com/ejjrq
Any other tips I can try out?

I've downgraded to 8.0.0 for the app in question and am in the process of publishing it.
I will be sure to start a fresh app directly after submitting the app store listing and will use the latest version on a fresh install.
I'll take notes during the process and update here as soon as I have more information.
FYI the behavior exhibits over ngrok, should have mentioned that earlier :)

Ah ngrok. Many people have had issues in the past with ngrok from webhooks to install issues. I bet thats the issue here :(

I can also confirm the "too many redirects" issue: when the shop is removed from the database, but is still in the session.
The other away around I am redirected to the login page.

@diemah77 and @ohmybrew i guess that this issue will also appear when somebody wants to use the app between multiple/different shopify stores because the session_domain will stay the same like app.example.com .. or i'm wrong?

Oh this happening when Removed from database and try to access? Ah I can work on that if that's the issueOn Jul. 26, 2019 11:57, diemah77<EMAIL_ADDRESS>wrote:I can also confirm the "too many redirects" issue: when the shop is removed from the database, but is still in the session.
The other away around I am redirected to the login page.
—You are receiving this because you were assigned.Reply to this email directly, view it on GitHub, or mute the thread.

I am not sure whether this is the only scenario leading to too many redirects.
One of our apps is currently being reviewed by Shopify. And this issue appears when they try to access the app preventing them from testing.

Hi @ohmybrew,
what the Shopfiy-Review Team was telling me a couple of minutes ago is:
Hey Stefan,

Unfortunately this was tested across two different browser incognito sessions and we're still seeing the error. See screenshot. (https://screenshot.click/26-59-c7q7k-rs256.png)

Please ensure you are testing your app in a live environment prior to following up.

I ask them about the Browser. @diemah77 and me can only reproduce it when the database has no entry but the session is filled.
In incognito-browser-session there should no session alive. We are using file driver for the session. Maybe Laravel detects a session also in incognito-browser-session for file session driver. We are thinking about to switch to cookie driver instead because i know that in incognito-browser-session no cookies are present.
What do you think?

Database - no entry.
Session - filled.
Ok well this is a senario I'll have to fine-check for in the middleware and send to a full auth.

Database - no entry.
Session - filled.
Ok well this is a senario I'll have to fine-check for in the middleware and send to a full auth.

i guess this https://github.com/ohmybrew/laravel-shopify/pull/291 also solves this issue because we need a full auth instead of a partial.

hi @ohmybrew can you please explain what is the difference between
AuthShopHandler::FLOW_FULL and AuthShopHandler::FLOW_PARTIAL ? In most cases full makes really sense.
And can you please explain what is the difference between SHOPIFY_API_GRANT_MODE=per-user and SHOPIFY_API_GRANT_MODE=offline i dont get it :)
First i thought https://github.com/ohmybrew/laravel-shopify/pull/291 is also the solution for the redirect loop but it isnt :)
You will always end in a redirect loop for
Database - no entry.
Session - filled.

when you make not a full auth.

HeyOffline mode is standard for most app, grabs a token which can be used forever and stored in database.Peruser is a mode which has a token per staff member who accesses the app.So full is where a complete redirection to Shopify's oauth screen is required. Either due to mismatching shops, a brand new shop, no token, per user mode, etc.Partial happens when offline mode is enabled (default), the shop session expired but still existing in database with a valid token, it simply updates the session preventing page flashes as seen before with only a full flow.On Jul. 28, 2019 17:18, Stefan Neuser<EMAIL_ADDRESS>wrote:hi @ohmybrew can you please explain what is the difference between
AuthShopHandler::FLOW_FULL and AuthShopHandler::FLOW_PARTIAL ? In most cases full makes really sense.
And can you please explain what is the difference between SHOPIFY_API_GRANT_MODE=per-user and SHOPIFY_API_GRANT_MODE=offline i dont get it :)
First i thought #291 is also the solution for the redirect loop but it isnt :)
You will always end in a redirect loop for
Database - no entry.
Session - filled.
when you make not a full auth.
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

I have pulled in a PR from @StefanNeuser and will be testing master branch with some scenarios to ensure it works to fix this bug.

Any updates here?

I'm swamped with work. Trying to get to it :)On Aug. 1, 2019 03:35, Stefan Neuser<EMAIL_ADDRESS>wrote:Any updates here?
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

Hi @ohmybrew , i found another issue so there is still a bug that i will resolve.

#293 in place. Seems to solve each case in physical tests I've performed.

I will be pushing a release out for this in the evening as I see no blockers right now... unless I'm missing a situation to physically test.
Did all testing with file storage for session backend and redis for a session backend.
Test: Shop is brand new, does not exist
Expected: Redirect to install process. Full redirect.
Result: Success

Test: No existing session
Expected: Session created and HMAC validated.
Result: Success

Test: With existing shop in session, try to load app in a different shop
Expected: Since shops do not match, session must be updated. No full redirect.
Result: Success

Test: With existing shop in session, try and load app (admin link) in a different shop
Expected: Since shops do not match, session must be updated. No full redirect.
Result: Success

Test: Shop which is trashed, try and load app.
Expected: Full-page redirect to auth flow to un-trash the shop.
Result: Success

Much appreciated!

Released. I hope this fixes your issues...

In testing v9.1.0 with several contributor changes, all seems well.
Added a Blade helper as well to help out (see usage).
Re-Open if any issue persists after updating

The issue with the infinite redirects came up for me when trying to install the app for the first time. It sends you to /partial and comes up with a redirect error.

The problem is, I can't detect a decline on install or charges... theres no documentation from Shopify to my knowledge about this.

Can I disable this partial flow for the time being somehow?

Its not able to be disabled, I would need a way to know it was from a cancellation. I will have to hunt for a hint on what to do in this case but unfortunately its more a shopify issue than my issue.
If someone we're to decline a charge or install, it would be nice if shopify sent some sort of status with the request. It did not for the past couple years but that may have changed and I'll double check.
If nothing is sent, then the only way is to do some hacky work around which I will not implement.
I'll let you know what I find...

@Kyon147  We've had a nice few changes on the master branch from several contributors but I think this is outside the issue.
In testing "cancel", Shopify simply redirected to /apps in the Shopify admin, it doesn't do any authentication loops, it completely backs out of the app. Any more information you can provide?

I think what I can see is this.

User installs the app, then on the accept page clicks "cancel", this then pushes them back out.
In the DB though at this point, you insert a row
User tries to reinstall because of the auth.shop middleware sees a DB entry it tries to do a partial auth flow and because the install and session are incomplete I think it causes the redirect infinitely.

Even though the shop was not installed, I manually added a delete_at date but left the token null. This worked because the app then does a full authenticate.
You seem to have a bug in the partial flow somewhere.

@ohmybrew I've also tried to debug it and going to install on a new store and then cancel and try and reinstall this come up.
Symfony\Component\Debug\Exception\FatalThrowableError thrown with message "Argument 2 passed to OhMyBrew\BasicShopifyAPI::setSession() must be of the type string, null given, called in \ohmybrew\laravel-shopify\src\ShopifyApp\Traits\ShopModelTrait.php on line 87"

@ohmybrew I've been debugging it and there is something up with the validateShop and HandleBadSesson
On line 70 in AuthShop I changed this to always return flow_full and it works, if the user first time does not install.
            $flowType = $session->isType(ShopSession::GRANT_PERUSER) ?
                AuthShopHandler::FLOW_FULL :
                AuthShopHandler::FLOW_FULL;

However, the partial flow does not work in the instance where the user does not install the app the first time they are present with it. (On a fresh store only).

Hmm yeah it should do a full authenticate if token is missing.
I think this is solved in master. Several people have contributed to changes for auth flow the past week.
In testing this case:

Go to install app
Click cancel
Attempt to re-install app

In the above for master, all works fine, no issues with looping or partial flow. So I suspect next release it should resolve. I just mentioned earlier today that I plan to do a release later tonight when I confirm a few more things, so this may fix the issues. @Kyon147

Oh so v 9.0.1 might have the bug in it but a new release tonight should solve that?
Good to know, will keep an eye out.
I'm starting to get a better understanding of how your package works, so would love to help you with issues through PR in the future as this is such a good package. @ohmybrew

@kyon147 Yes the above scenario for reinstall works fine in master so I suspect the patch release will work fine for your issue.

@ohmybrew and @Kyon147 for me the current master is not fixing the infinite loop issue when i install the app via the app-installation-button. You can simulate the app-installation-button from the appstore in you dev-stores describe as here https://help.shopify.com/en/api/app-store/listing-in-the-app-store/testing-your-app-before-submitting#installing-a-free-app-on-a-development-store
if i reinstall the app served by my webserver i get this partial auth infinite issue. The shopify team pointed this out to me several times.
Now i disabled partial auth in my fork and this issue is also solve.
So my question is, why do we make use of that partial-auth? It seems to be broken.

To prevent the page flashing and sending data twice.
Well if this is the case, the check for the token existing is not working properly because if it were, it would fwd you to the full auth process... I'll dig into this some more.

v9.2.0 is out which hopefully should fix the issues everyone's faced.
Thats everyone for the contribs.

Hi @ohmybrew , i want to try it out on our sandbox system to see if it fix the partial out issue. Thank you for the release

Hi @ohmybrew ,
i took a look into all changes but i can find some changes that points to the issue with partial auth

if i reinstall the app served by my webserver i get this partial auth infinite-loop issue. The shopify > team pointed this out to me several times.
Now i disabled partial auth in my fork and what fixed this issue.
So my question is, why do we make use of that partial-auth? It seems to be broken.

Did you changed something in the api package to fix that?

I did not yet include a check for the dev store stuff. It seems checking if the token is empty is somehow broken, as its not seeing it and sending them to a full flow.On Aug. 24, 2019 04:31, Stefan Neuser<EMAIL_ADDRESS>wrote:Hi @ohmybrew , i want to try it out on our sandbox system to see if it fix the partial out issue. Thank you for the release
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

V10 is out which should solve the issues we've faced thanks to everyones contributions. Partial flow is also removed for the meantime and only full flow now.
Since the original issue is cleared by removing partial flow, I am closing this for now. Any future issues related to auth, please open a new issue :)


Support Spot Instances on AWS

Docs for using spot instances with the AWS EKS Terraform module.
Want to use spot instances for the user and worker nodes. Don't want to use spot instances for the core nodes.

Fixed as of https://github.com/pangeo-data/terraform-deploy/commit/96e9da1aee5253905a313b5444656d1bc58818d7 on the unmanaged-nodegroups branch. Working on integrating this to other branches.
Also, you can use spot instancing for the core node. It can be a little iffy if your machine has a high chance of being replaced. See the AWS Spot Instance Advisor for expected rates of interruption for your region and instance type.


Width and Height are changed below min-width/min-height

If I set a widget to be min-width : 2 and min-height : 2 and the resize is available in the UI,  I can visually resize a box below the minimum allowed values.  We can see with the preview box, that it is effectively allowed to be smaller than the min sizes.
As expected, the boxed is maintained to it's min sizes, however, since the "preview" box was allowed to go smaller, when the resize operation is completed, the data attributes of the box, are 1,1 instead of 2,2.
Furthermore, if we try to move the box after, it thinks it's only 1x1 and so it's the space it is allowed to move, thus allowing boxes overlap.
Am I suppose to catch this myself with the onchange event and reset the data attributes manually, or is this a bug?

I wasn't able to reproduce the bug using a fiddle :(
https://jsfiddle.net/ssfk1kfa/17/

I was able to reproduce using a fiddle and the same generation technique (from an array) :
https://jsfiddle.net/ssfk1kfa/18/


can't drag feed into folder

Can create and place feed into a folder, but cannot drag existing feed to a folder.
High Sierra 10.13.3 (17D47).

Good catch! This will definitely get fixed for 1.0 alpha.
Duplicate of #13.


⚠ Adam Brand Music has degraded performance

In aca2e03, Adam Brand Music (https://adambrandmusic.com) experienced degraded performance:

HTTP code: 200
Response time: 21293 ms

Resolved: Adam Brand Music performance has improved in c418b8c after 9 minutes.


feat: spiral gradient

I'm new to contributing to this project, is there other things I need to add apart from the node?

Hi, and thanks for contributing to this project. :)
There are a couple extra things when adding a node:

add it to the base library, so it can be easily accessed
add documentation for the node
add your contribution to the About dialog and the change to changelog (I'll do those before merging)

Please don't hesitate to ask if you need help.
Hmm maybe it does not need the gradient parameter, and could output a greyscale value (it's easy to use a Colorize node if needed).
I'm not sure about the cutoffs either. Being able to select the inner/outer values as well as a bevel (for smooth transition between the spiral and uniform areas) would be nice, but that would make the node a bit too complex.
What do you think?

I'll add the docs (I'm assuming they go here?), but I haven't found yet where the base library is configured...
With the gradient input I was doing it for consistency with the other gradient nodes, that all have an input like that, so I think it's reasonable to leave it there.

I've done a few changes to get the node more in line with other gradient nodes too

Nice! It's simpler now.

Okay, I believe everything should be added correctly now!

Yes, it looks perfect.
Please don't worry if I don't merge it right now. I generally merge new nodes just before release to avoid that users who run dev builds post materials that rely on new stuff (therefore not compatible with current release) on the website. So this will be merged in September.


Is it possible to do an animation with sequence of images in fbx model?

[x] Review the documentation: https://virocore.viromedia.com/
[x] Search for existing issues: https://github.com/viromedia/virocore/issues
[x] Use the latest ViroCore release: https://virocore.viromedia.com/docs/releases
[x] Turn off Instant Run in Android Studio

Description
I have an image and I want to do the "water" efect with that, the animator says that it is a sequence of images with that image, just says me that I have to change the texture, but I don't know if it is possible to do that on fbx model... Because when I try to add a "texture" the geometry of model is null... So I can't change the materials...

Hey @Ximmgon, thanks for reaching out. It should be possible within ViroCore to swap out a texture of a 3D model dynamically. Your approach is correct in the above - starting from the root node of your model, you would have to iterate through down its tree of subnodes, until you find a node with the material name that you are targeting to change. You can then simply swap out the texture within that material.

Because when I try to add a "texture" the geometry of model is null... So I can't change the materials
If you see the model in your scene, your nodes should have geometry - are you sure you are examining / iterating through the entire node tree to check for geometry?

So I have to do a GIF? with my respective image?...

Well, since you've mentioned your texture is effectively "sequence of images with that image" - you could use a GIF texture that contains your image sequences. Another way is to apply each individual image yourself.

Yess! I have a node that contains an Object3D (The fbx model in vrx format),and other nodes with its respective Object3D, if I use the node.getGeometry() method it returns null, and if I check the object3D.getGeometry() that is inside the node, it returns null too.

I'm not sure if you fully understand the API - getGeometry() only returns the geometry associated with that node. As such calling object3D.getGeometry() returns the geometry associated with that object3D root node - and in certain 3d models, the geometry may not be at the root.
Thus, as mentioned previously, you will have to iterate through the subtree of the 3d model, starting at the root of the 3d model, and check every node for geometry - have you done this yet, for all the nodes within the 3d model?

you will have to iterate through the subtree of the 3d model, starting at the root of the 3d model, and check every node for geometry - have you done this yet, for all the nodes within the 3d model?

And How I do that? Because if I want to iterate through the subtree of the 3d model, I suppose that I've to use object3D.getChildNodes() to obtain all nodes of 3d model ?, but it returns an empty list... so I cannot iterate through an empty list... Or I don't know how to do that...

on the callback?

I don't know why was not working, I had a flag that changes on callback, and when it turns true, it call a method which call "getChildNodes()" and returns an empty list, (probably a mistake that I can't see yet), but if I call the getChildNodes() on the callback as you said it works! Thank you.


Could you please help to indicate which table that the script will produce?

Hi Kyle,
Thanks for your intense work. Could you please help to indicate which table that the script will produce, like what you did in "miniimagenet_kmeans.sh" script.
#!/usr/bin/env bash
this run reproduces the second-to-last line of Table 4 of the paper.

I've added comments to the scripts like you suggested. The output suggests the program is running the k-means pre-processing step. Did you give it a few minutes to do so?

Closing, feel free to re-open should you have additional concerns.


CSS does not take into account menubar filter icon

Minor problem with CSS.

I think we may need to rearrange the top menubar items. The language switch can be incorporated in the user dropdown, perhaps the filter icon too.


[Validation-Test] Fix some compiler crashers

What's in this pull request?

When diagnosing bad protocols, if the underlying type was invalid, we would dereference a null pointer when we went to produce diagnostics.  Instead, we need to cut off diagnostic production before we emit the more semantically meaningful ones for protocols with valid types.  Notably, this provides a fix for the recently-introduced #3109.
Resolved bug number: (SR-)

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    All supported platforms     | @swift-ci Please smoke test and merge
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    All supported platforms     | @swift-ci Please test and merge
    OS X platform               | @swift-ci Please test OS X platform
    OS X platform               | @swift-ci Please benchmark
    Linux platform              | @swift-ci Please test Linux platform

Lint Testing
    Language     | Comment
    ------------ | -------------
    Python       | @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

Do you mind squashing this down to a single patch?

An alternate approach might be to change the diagnostics to use getName() instead of getDeclaredType() when emitting the @objc diagnostics (this seems to be the only problematic part, or is not inserting the protocol in ValidatedTypes also relevant?)
Relying on isInvalid() to mean "might not have a declared type" is slightly problematic.
Also note that the only case where a protocol will not have a declared type is if it was nested inside of another type or extension. You could just completely punt on checking the @objc attribute if Proto->getDeclContext()->isModuleScopeContext() -- we diagnose such invalid nesting later, in typeCheckDecl().

Yeah, we can't insert the thing into validated types.  The extra @objc diagnostic didn't seem worth it to me.

Nesting diagnostics and circularity checks are already performed by the time we get here.

Nevermind.  A rebase has changed the way this pull requests interacts with the validation tests.

Yeah, so what I'm suggesting is changing the isInvalid() check into something more specific, like '!getDeclContext()->isModuleScopeContext()'.

The vector for the crash has changed is what I mean.  That is one way of cutting off the bad diagnostic, but it still crashes deeper inside the compiler.  A proper fix is to diagnose circular protocols better which is something I'm taking a look at now.

Circular protocols still have a declared type AFAIK. What is the actual crash?


[$250] Web - Emoji- Black box for flag emoji are difficult to cancel with backspace key

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: v9.0.55-2
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Action Performed:

Navigate to http://www.staging.new.expensify.com/
Navigate to a conversation
Open the emoji picker
Scroll down the list to the bottom( to flag emoji)

Expected Result:
Any emojis can be erased by backspace key
Actual Result:
Black box flag emojis are difficult to cancel with backspace key (removed from composed box after taping backspace 7 times)
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Standalone
[ ] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

https://github.com/user-attachments/assets/7d0efeb5-b751-4f8f-8e5f-52c823fc82a2
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021852238123831178456
Upwork Job ID:<PHONE_NUMBER>831178456
Last Price Increase: 2024-11-08

Issue OwnerCurrent Issue Owner: @eVoloshchak

@muttmuure  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

@lanitochka17
This does not have a BZ assigned. Can you remove and re-add the Bug label?

@c3024 Done

gonna investigate this tomorrow when I'm back from ooo

I don't see this happening on the version v9.0.54-11. I'll see if we can get QA to restest on the latest version.

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

Still reproducible on latest build v9.0.55-2
https://github.com/user-attachments/assets/1e235dd1-2cc0-4060-a742-1a4c8ed6d5a4

I'm not sure how to test that version, I don't have that version. I'm asking Tom for some guidance on how to test this

Asking @izarutskaya for some guidance on how to test this bug in the version they see it in - https://expensify.slack.com/archives/C9YU7BX5M/p1730357190129519?thread_ts=1730175293.093429&cid=C9YU7BX5M

Okay this is reproduced in multiple browser versions so adding External to review and fix

@eVoloshchak can you review @c3024's proposal - https://github.com/Expensify/App/issues/51336#issuecomment-2438017697. TY!

Dmd @eVoloshchak to take a peek at the propsoal - https://github.com/Expensify/App/issues/51336#issuecomment-2438017697

@c3024, thank you for the proposal! I think in this case we need to dig a little deeper to figure out the true root cause

Why is this reproducible only on Web? Native platforms and (which is even more confusing) mWeb seem to be working fine
Why does the issue happen for flag emojis, but not for other emojis that are composed of multiple Unicode points? AFAIK most flag emojis are composed of multiple unicode points, but the issue happens to those specific ones. Is there a limit after which the problem arises?

Proposal
Please re-state the problem that we are trying to solve in this issue.
Web - Emoji- Black box for flag emoji are difficult to cancel with backspace key
What is the root cause of that problem?
 Specifically, it consists of:
// England
Base component: 🏴 (U+1F3F4) – A black flag.
Tag characters:
(U+E0067) – Tag Latin Small Letter G.
(U+E0062) – Tag Latin Small Letter B.
(U+E0065) – Tag Latin Small Letter E.
(U+E006E) – Tag Latin Small Letter N.
(U+E0067) – Tag Latin Small Letter G.
(U+E007F) – Cancel Tag (to close the sequence).
// Scotland
Base component: 🏴 (U+1F3F4) – A black flag.
Tag characters:
(U+E0067) – Tag Latin Small Letter G.
(U+E0062) – Tag Latin Small Letter B.
(U+E0073) – Tag Latin Small Letter S.
(U+E0063) – Tag Latin Small Letter C.
(U+E0074) – Tag Latin Small Letter T.
(U+E007F) – Cancel Tag (to close the sequence).
// Wales
Base component: 🏴 (U+1F3F4) – A black flag.
Tag characters:
(U+E0067) – Tag Latin Small Letter G.
(U+E0062) – Tag Latin Small Letter B.
(U+E0077) – Tag Latin Small Letter W.
(U+E0061) – Tag Latin Small Letter A.
(U+E006C) – Tag Latin Small Letter L.
(U+E0065) – Tag Latin Small Letter E.
(U+E0073) – Tag Latin Small Letter S.
(U+E007F) – Cancel Tag (to close the sequence).
What changes do you think we should make in order to solve the problem?
I customized the Backspace key event for solving this at here.
            // Backspace
            if (webEvent.key === 'Backspace') {
                const cursorPosition = selection.start;

                if (cursorPosition === 0 || cursorPosition != selection.end) {
                    return;
                }

                const textBeforeCursor = lastTextRef.current.slice(0, cursorPosition);
                const flagEmojiPattern = /\u{1F3F4}[\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0061}-\u{E007A}\u{E007F}]+/gu;

                if (flagEmojiPattern.test(textBeforeCursor.slice(-14))) { // Checks last few characters
                    // Prevent the default backspace behavior
                    event.preventDefault();

                    // Remove the entire flag emoji sequence
                    setSelection((prevSelection) => ({
                        start: cursorPosition - 14,
                        end: cursorPosition - 14,
                        positionX: prevSelection.positionX,
                        positionY: prevSelection.positionY,
                    }));

                    const newText = lastTextRef.current.slice(0, cursorPosition - 14) + lastTextRef.current.slice(cursorPosition);
                    updateComment(newText, true);
                }
            }

What alternative solutions did you explore? (Optional)
N/A
Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01aff093c9a804b145

https://github.com/user-attachments/assets/7834172b-f9e1-4745-b073-6d7dcdc3d1a3

@eVoloshchak I can reproduce this error on Inspector mobile. Please check this.
https://github.com/user-attachments/assets/4b1c2f41-5ad1-4b06-be57-01dff03d042b

The reason you can delete certain emojis, especially composite emojis (like flags or family emojis), with a single backspace key press in some contexts is due to how these emojis are represented in Unicode and how the input field or application handles text input.
Perhaps the operating systems(Windows, MacOS, Linux, iOS and Android) are processing this.

@Anaslancer, this approach is limited, the problem would come back if (when) new emojis are introduced (and since you can technically paste any emoji into the composer, this won't work for all of the emojis). We need a more universal approach that would work for all of the emojis

And if you can't repro this error, perhaps the system can process deleting by one backspace. I tested it on web

I can repro this error on Android 13 emulator. @eVoloshchak What is your Android version?

@Christinadobrzyn I can reproduce this on the windows chrome browser too.
https://github.com/user-attachments/assets/4f2383d8-700b-4d75-ad40-c24ffd397dd6
cc @eVoloshchak

https://github.com/user-attachments/assets/15d4704f-9d61-4a10-a634-1af2b4b46308
This isn't a problem with our App, the same behavior can be observed on every other website.
Ideally, we'd open an issue for Chrome/JVM itself, but this problem has existed for 5+ years already, and I couldn't find any attempts to fix the root cause, so I think a workaround is acceptable in this case.
This was already resolved for a different project at https://github.com/element-hq/element-web/issues/22196
@c3024's proposal looks good to me. We have to make sure this doesn't affect performance negatively and make sure to test this in many browsers and on windows
🎀👀🎀 C+ reviewed!

Looks like the PR is under review - https://github.com/Expensify/App/pull/52995

@eVoloshchak , please check this PR #52995. Thanks!

monitoring PR https://github.com/Expensify/App/pull/52995

monitoring https://github.com/Expensify/App/pull/52995

@eVoloshchak , gentle bump for the PR review!

@eVoloshchak 👀


iPad: flickering UI bug hides tutorial start buttons

https://youtu.be/BME2XHUZZcM

This makes it pretty hard/awkward to start a tutorial

I am removing next-release. If this is a regression then we can discuss.

@abchatra , this is a regression. Doesn't happen on live site.
Other data: I updated my ipad version and it still repros. Also I managed to repro it in my xcode sim so hopefully that helps.

I am removing next-release tag.

I also tried browser stack and it doesnt' repro.

This must be specific to some form factor of ipad.

Could also be perf related! If the iPad has a bunch of apps open or something

Repro on sim iPad 7th gen: (notice it only happens on certain scroll locations)

Closing as no repro