TriggerHandlers shouldn't implicitily use the trigger context variables.

In your trigger handler examples you implicitly use the context variables of Trigger.new and Trigger.old. These should be passed in via the constructor instead.
This will promote a better recipe to developers since it will encourage them to pass in the data making their classes easier to test and make them usable outside of the trigger context.

@gdoenlen
I see your point. I'm still hesitant to change this, because I believe the best practice is to establish three layers here:
Trigger
TriggerHandler
BusinessLogicClass
Enabling re-use of the triggerHandler outside of a trigger context is dangerous, permissions wise. I'd rather the re-use happen at the businessLogicClass level, rather than the triggerHandler level. Accessing and assigning the Trigger context variables in the constructor of the trigger handler, means the triggerHandler itself, by design, is useless outside of a trigger context.
Thoughts?

I guess I don't see that structure right away in this code.
Upon a closer look it looks like your layering is also based on static context and methods, which I also argue should be done away with and an instance of your business logic class should be passed in. Recipes should be teaching developers to avoid things like static context, blocking functions, and tight coupling to support reuse or at the very least to facilitate easier testing.

@gdoenlen Making that structure clearer is something I'm struggling with. It's easy to talk about, but hard to call out outside of documentation. Do you have ideas on making that stratification clearer?
I know some people are taught not to use static methods, or that they're an anti-pattern. I feel like they're useful for code that's written for teaching. It makes it easy to quickly execute a block of code for illustration purposes.  Are you referring specifically to say, the AccountServiceLayer? If so, I'm happy to entertain PR's about moving that class to strictly instance methods.

I guess I should have checked the other existing issues before posting my similar issue.
Regardless, I find it difficult to see the point in a trigger helper/handler that is actually something other than the business logic. This feels like bloat for no really good reason. Yes, I totally agree that business logic does not belong in a trigger (for how else can I test it outside the context of a DML operation?), but to me that logic is what the trigger needs to invoke in a small number of lines (ideally a single line that uses a dependency injection pattern to get the required helper/handler instance and call the entry point with the trigger data).
Given the significant gap in Apex around dependency injection and mocking, personally I see these latter two as a far more valuable thing to provide a recipe for, using the StubProvider and related techniques to allow unit tests to truly be UNIT tests (not "integration tests") with minimal DML and therefore fast execution.

@gdoenlen @sirephil
I think we can all agree that business logic belongs anywhere but the trigger itself.
We want Apex Recipes to reflect best-practices, and at the heart of this issue is what those best practices are.
I recognize the TriggerHandler here can be a controversial choice, and I wanted to take a moment to provide a detailed why I believe this is the best practice.
Many developers, pass their trigger context variables to the trigger handler explicitly. Apex Recipes' trigger handler does not. This is for a couple of reasons:
First, is a philosophical one: just what is a trigger handler? In the case of Apex Recipes, TriggerHandlers are intended as a polyfill. TriggerHandler.cls, and related ObjectTriggerHandler.cls files exist to bolt features onto triggers that Salesforce doesn't provide. Namely, an ability to order the execution of business logic, loop checking, and conditional execution. These are feature I want triggers to have. Since Apex doesn't allow us to refine, redefine, or override Trigger(the namespace/class), these features have to be polyfilled in other ways.
However, since these features are a polyfill, it makes sense to keep them tightly coupled to the Trigger context variables.
Second, Trust is our #1 value. Which means Security, and secure coding is paramount. Given the way Triggers currently work in Apex, the trigger handler used by Apex Recipes is architected to renders the trigger handler code itself useless outside of a trigger context
One of the many things we want to promote with this code is code reuse. However, if logic resides in the trigger handler itself, that code may at times be used outside of a trigger context. Because the context (quiddidy) isn't checked in the code(yet), it has the possibility (and probability) of accidentally leaking permissions when used outside of a trigger context. This is something I've witnessed myself in more than one org. Yes, it's true that all code, regardless of it's potential contexts should check and honor FLS/Crud but in practice, I often don't see that.
As a Security enhancing polyfill, this TriggerHandler's architectural use of Trigger context variables is intentional, and I contend, best practice. I'm taking this to our team, for further discussion.
As for testing, since every trigger requires some coverage, I test these trigger handlers at three levels:

Trigger - omnibus execution of trigger logic. Insert account, check that it is mutated as expected
TriggerHandler - that the order of logic is maintained. Data is test-injected via @testVisible class variables. Often, I accomplish include the Trigger level #1 above, here.
Unit testing the actual business logic methods. This is where I spend the majority of my time.

Future additions to Apex Recipes include things like the Stub api and other DI pattern best practices.

@codefriar the naming of the trigger handler gives no clue to any of what you have discussed above, and there's little apexdoc to explain this to the developer either. Reference off to the origin is clearly needed, but when I'm developing code I'm not going to stop and follow a link to go read the details of how to use something elsewhere.
Now that I am somewhat enlightened, I feel that the naming is very poor. It would be better to call this "TriggerHandler" a "TriggerLogicOrchestrator" and to call the "AccountTriggerHelper" the "AccountTriggerLogicOrchestrator". The use of "Handler" and "Helper" is a poor choice, leaving the reader clueless as to the role and responsibility of these classes.
I think that much of what you explained above should be reproduced in the apexdoc, but more than that there needs to be a deep explanation as to your statement "Because the context (quiddidy) isn't checked in the code(yet), it has the possibility (and probability) of accidentally leaking permissions when used outside of a trigger context" - I fail to understand what you are getting at here.
I also fail to see how this helps coordinate sequencing across multiple, disparate triggers against the same object, including but not limited to across package boundaries. And as to "loop checking", this doesn't appear to consider trigger invocation chunking (for bulk operations), doesn't distinguish between trigger invocation phases and doesn't identify looping against specific instances. To me, therefore, this seems like a really blunt instrument and one that I wouldn't use. Take a look at https://salesforce.stackexchange.com/questions/296745/what-is-a-good-pattern-for-recursion-blocking-in-generic-trigger-handlers/296748#296748
BTW, with appropriate structuring of your code you should be able to perform all testing without the use of the (to me) horrid @TestVisible annotation in your production code. Clearly this would be made easier if Apex supported reflection to the level that Java does.

BTW, my issue #24 was not a direct repeat of this issue as it touched on other aspects.

@sirephil
You raise a few interesting points, so I wanted to quickly reply and get your feedback.

There's a lot of content coming around this, that references the handler naming convention. I understand what you're saying, though, about the name not being spot on. I can also see the flip side, where someone new to the idea of writing triggers with an associated class wouldn't have preconceived notions of what a 'handler' is. I don't know that there's a happy medium here, but I'm happy to entertain suggestions. logicOrchestrator seems a mouthful.
You should also know that there are some major refactorings coming to TriggerHandler in the near-ish future. While none of the planned improvements will change the root of this issue use of trigger context variables inside a handler class they do address some of your other comments.
I whole-heartedly agree that the ApexDoc for TriggerHandler and associated classes needs to be updated with this information. Look for a PR later today, maybe tomorrow if things get busy.
You asked for clarification on this sentence: 'Because the context (quiddidy) isn't checked in the code(yet), it has the possibility (and probability) of accidentally leaking permissions when used outside of a trigger context' -- This all comes back to the fact that triggers run in System Mode. In System Mode Object permissions, field-level security, sharing rules aren't applied for the current user. (because there's no user context). This leads to a double-edged sword of issues: If you write your trigger handler logic to execute CRUD and FLS Checks, you're effectively wasting CPU Time, as those will always pass in System mode. On the other hand, if you do not check CRUD and FLS, any re-use of the Trigger Handler's class methods are insecure. in 'the wild' as it were, I've seen a number of orgs who reuse trigger handler code, and don't do security checks and it's caused some issues at times. This architecture prevents that.
Ok, so as far as the features in play here: This helps with multiple triggers on the same object, because the handler class is responsible for calling business logic elsewhere. The only thing this pattern / architecture does differently is that it doesn't contain the trigger logic directly in the handler, but suggests you put it in its own business logic class.  Also, Trigger Chunking executes each chunk in a different transaction - the loop count is to ensure each single transaction doesn't recurse.

@codefriar, thanks.

It may be a mouthful, but it is expressive. Naming is really important for guiding developers. Sure, find a shorter word, but "Handler" is about as good as "Manager", "Helper" or "Utils" in expressing true meaning.

Looking forward to it.
Hang on, all Apex works this way! The Apex code must apply security and sharing EXPLICITLY using the provided mechanisms (or not, as required on a case-by-case basis). For example, I'm happy to accept that a trigger runs implicitly without sharing, but as soon as you call out to a class marked as with sharing, sharing kicks back in. Unless I have really misunderstood what I've experienced.
I believe your statement about transactional separation to be incorrect; in my experience all static variables persist between chunk invocations, which are all performed within the outer-most transaction. The same applies for trigger re-entrancy due to the use of process builders, invocable methods, flows etc. Since the "trigger handler" holds the static loopCountMap these counts apply as-is from the first time this static is loaded to the end of the transaction that initiated the first trigger processing. Indeed, these counts will apply across multiple DML operations performed at the highest level within a transaction (e.g. if an app was to first update some Accounts in one DML, then, in a second DML do some updates to some Opportunities related to those accounts which causes further DML on the Accounts from within the Opportunities trigger context, the counts apply within each of the triggers in each of these DMLs). If this were not the case then why are there so many cases where we have to carefully engineer "recursion suppression" like in the stack exchange Q&A I previously cited?

@sirephil on the sharing we mark the class with inherited sharing not with sharing. With inherited sharing triggers run in system mode and class with inherited sharing means it depends on the caller class.

@msrivastav13 my point is that if you have a class with sharing then sharing is applied, even when called from a trigger. I wasn't talking about inherited sharing... are you saying that the trigger runs as if it were inherited sharing, picking up the sharing from the context of the DML operation?

@sirephil Sorry for not being explicit! What I meant here is that we mark all the Trigger handler classes to inherited sharing. This way we ensure trigger runs in system mode. All the service layers marked inherited sharing as well so any class invoking it owns.
For DML if the class is marked inherited it won't pick any permissions which are desired behavior.
For the service layer class, we need to do FLS and object checks before DML.

Just pointing out that other parts of my earlier response have not been replied to.


Bug: @eslint/compat types incompatible with both typescript-eslint and @types/eslint

Originally reported in https://github.com/typescript-eslint/typescript-eslint/issues/9115
Which packages are affected?

[X] @eslint/compat
[ ] @eslint/config-array
[ ] @eslint/object-schema

Environment
Node version: v20.13.1
npm version: 10.5.2
ESLint version: 9.3.0
Operating System: macOS Sonoma 14.5 (23F79)
What did you do?
I used fixupPluginRules() from @eslint/compat along with the tseslint.config() config definition function from typescript-eslint and received a type mismatch:
// @ts-check

import { fixupPluginRules } from '@eslint/compat';
import react from 'eslint-plugin-react';
import tseslint from 'typescript-eslint';

const configArray = tseslint.config({
  plugins: {
    react: fixupPluginRules(react), // 💥 Type 'FixupPluginDefinition' is not assignable to type 'Omit<Plugin, "configs">'.
                                    // ... (see full error below under "What actually happened?")
  },
});

export default configArray;

See full error below under "What actually happened?".
I also tried the Linter.FlatConfig[] type from eslint itself:
// @ts-check

import { fixupPluginRules } from '@eslint/compat';
import react from 'eslint-plugin-react';

/** @type {import('eslint').Linter.FlatConfig[]} */
const configArray = [
  {
    plugins: {
      react: fixupPluginRules(react), // 💥 Type 'FixupPluginDefinition' is not assignable to type 'Plugin'.
                                      // ... (see full error below under "What actually happened?")
    },
  },
];

export default configArray;

See full error below under "What actually happened?".
My package.json:
{
  "type": "module",
  "devDependencies": {
    "@eslint/compat": "1.0.1",
    "@eslint/js": "9.3.0",
    "@types/eslint": "8.56.10",
    "eslint": "9.3.0",
    "eslint-plugin-react": "7.34.1",
    "typescript": "5.4.5",
    "typescript-eslint": "8.0.0-alpha.14"
  },
  "packageManager"<EMAIL_ADDRESS>}

What did you expect to happen?
The types from @eslint/compat should be compatible with both:

tseslint.config() config definition function from typescript-eslint
Linter.FlatConfig[] type from @types/eslint

What actually happened?
The types were reported as incompatible with both:
1. typescript-eslint
tseslint.config() config definition function from typescript-eslint
Type 'FixupPluginDefinition' is not assignable to type 'Omit<Plugin, "configs">'.
  Types of property 'rules' are incompatible.
    Type 'Record<string, FixupRuleDefinition> | undefined' is not assignable to type 'Record<string, LooseRuleDefinition> | undefined'.
      Type 'Record<string, FixupRuleDefinition>' is not assignable to type 'Record<string, LooseRuleDefinition>'.
        'string' index signatures are incompatible.
          Type 'FixupRuleDefinition' is not assignable to type 'LooseRuleDefinition'. ts(2322)

(the types of both<EMAIL_ADDRESS>and<EMAIL_ADDRESS>result in the same problem, I chose v8 alpha for its support of ESLint 9)
2. @types/eslint
Linter.FlatConfig[] type from @types/eslint
Type 'FixupPluginDefinition' is not assignable to type 'Plugin'.
  Types of property 'rules' are incompatible.
    Type 'Record<string, FixupRuleDefinition> | undefined' is not assignable to type 'Record<string, RuleModule | ((context: RuleContext) => RuleListener)> | undefined'.
      Type 'Record<string, FixupRuleDefinition>' is not assignable to type 'Record<string, RuleModule | ((context: RuleContext) => RuleListener)>'.
        'string' index signatures are incompatible.
          Type 'FixupRuleDefinition' is not assignable to type 'RuleModule | ((context: RuleContext) => RuleListener)'. ts(2322)

This is similar to the outcome with fixupConfigRules reported in #24
Cause
Apparently the types of @eslint/compat are using loose, problematic types like Object, as @bradzacher mentions here:

https://github.com/typescript-eslint/typescript-eslint/issues/9115#issuecomment-2118983206

These appear to have been added as part of #5 here:

3957064 (#5)

Link to Minimal Reproducible Example

https://github.com/karlhorky/repro-eslint-compat-types-incompatible
CodeSandbox (starts tsc automatically to show errors in Terminal)  https://codesandbox.io/p/devbox/github/karlhorky/repro-eslint-compat-types-incompatible

Participation

[ ] I am willing to submit a pull request for this issue.

Additional comments
No response

Also, the argument type of the first argument of fixupPluginRules() doesn't match either of FlatConfig.Plugin from typescript-eslint or ESLint.Plugin from @types/eslint:
import { fixupPluginRules } from '@eslint/compat';

// typescript-eslint
const typescriptEslintPlugin =
  /** @type {import('@typescript-eslint/utils/ts-eslint').FlatConfig.Plugin} */ ({});
fixupPluginRules(typescriptEslintPlugin); // 💥 Argument of type 'Plugin' is not assignable to parameter of type 'FixupPluginDefinition'.
                                          // ... (see full error below)

// @types/eslint
const eslintPlugin = /** @type {import('eslint').ESLint.Plugin} */ ({});
fixupPluginRules(eslintPlugin); // 💥 Argument of type 'Plugin' is not assignable to parameter of type 'FixupPluginDefinition'.
                                // ... (see full error below)

Errors:
typescript-eslint
Argument of type 'Plugin' is not assignable to parameter of type 'FixupPluginDefinition'.
  Types of property 'rules' are incompatible.
    Type 'Record<string, LooseRuleDefinition> | undefined' is not assignable to type 'Record<string, FixupRuleDefinition> | undefined'.
      Type 'Record<string, LooseRuleDefinition>' is not assignable to type 'Record<string, FixupRuleDefinition>'.
        'string' index signatures are incompatible.
          Type 'LooseRuleDefinition' is not assignable to type 'FixupRuleDefinition'.
            Type 'LooseRuleCreateFunction' is not assignable to type 'FixupRuleDefinition'.ts(2345)

@types/eslint
Argument of type 'Plugin' is not assignable to parameter of type 'FixupPluginDefinition'.
  Types of property 'rules' are incompatible.
    Type 'Record<string, RuleModule | ((context: RuleContext) => RuleListener)> | undefined' is not assignable to type 'Record<string, FixupRuleDefinition> | undefined'.
      Type 'Record<string, RuleModule | ((context: RuleContext) => RuleListener)>' is not assignable to type 'Record<string, FixupRuleDefinition>'.
        'string' index signatures are incompatible.
          Type 'RuleModule | ((context: RuleContext) => RuleListener)' is not assignable to type 'FixupRuleDefinition'.
            Type '(context: RuleContext) => RuleListener' is not assignable to type 'FixupRuleDefinition'.ts(2345)

Thanks for the report. Unfortunately, the team doesn't have a lot of experience with TypeScript (this is one of the first packages we've published with type definitions), so I'm not surprised that there are conflicts.
I (naively) thought that by defining interfaces, then anything matching that interface would be accepted.
Also unfortunately, it seems that others have gone ahead and created type definitions for ESLint that we weren't involved in (such as @types/eslint), which is going to make it difficult to reconcile.
As it seems like you have a great deal of insight into this problem, would you be willing to put together a proposal for how to address this?

Thanks for the candid feedback and openness to make a change here!
For additional feedback regarding "the future of TS types in official ESLint projects" I would like to defer to community members who have worked on the @types/eslint and typescript-eslint projects:

@types/eslint

@antfu
@jakebailey
@JounQin
@linlinyang
@matwilko

typescript-eslint

@bradzacher
@JoshuaKGoldberg

My first gut feel (given the years of existing, detailed work in @types/eslint (eg. index.d.ts), typescript-eslint (lots of files there, but packages/utils/src/ts-eslint/Rule.ts is one particularly relevant here) and related packages like @types/estree) would be to adjust the types of @eslint/compat to consume these types.
For example, below would be a first quick sketch (generated code, not tested to be accurate or compatible types) of using the DefinitelyTyped packages @types/eslint and @types/estree to build the @eslint/compat types:
packages/compat/src/types.ts
/**
 * @filedescription Types for backcompat package.
 */

import type { Rule, Linter, Scope, SourceCode } from 'eslint';
import { Node as ESTreeNode } from 'estree';

/*
 * NOTE: These are minimal type definitions to help avoid errors in the
 * backcompat package. They are not intended to be complete and should be
 * replaced when the actual types are available.
 */

export type FixupLegacyRuleDefinition = (
  context: Rule.RuleContext,
) => Rule.RuleListener;

export interface FixupRuleDefinition {
  meta?: Rule.RuleMetaData;
  create(context: Rule.RuleContext): Rule.RuleListener;
}

export interface FixupPluginDefinition {
  meta?: object;
  rules?: Record<string, FixupRuleDefinition>;
  configs?: Record<string, Linter.Config>;
  processors?: Record<string, Linter.Processor>;
}

export interface FixupConfig {
  files?: string[];
  ignores?: string[];
  name?: string;
  languageOptions?: {
    ecmaVersion?: number | 'latest';
    sourceType?: 'script' | 'module';
    globals?: Record<string, boolean | 'readonly' | 'writable' | 'writeable'>;
    parser?: string;
    parserOptions?: Linter.ParserOptions;
  };
  linterOptions?: {
    noInlineConfig?: boolean;
    reportUnusedDisableDirectives?: boolean | Linter.RuleLevel;
  };
  processor?: string | Linter.Processor;
  plugins?: Record<string, FixupPluginDefinition>;
  rules?: Record<string, Linter.RuleEntry>;
}

export type FixupConfigArray = FixupConfig[];

What are your thoughts on this idea of consuming the DefinitelyTyped community packages like this?

What would be the benefit of that vs. just using the types from @types/eslint directly?

using the types from @types/eslint directly

By "using the types", do you mean copying the types instead of importing them?
In that case, the benefit of importing + adding a dependency over copying the types would be that any incompatible updates to either side (either @types/node or eslint/rewrite) would cause visible failures in the CI of eslint/rewrite.
There would be ways around this, eg:

Copying the types
Also adding an additional "layer" of type tests against the @types/eslint types

But these options would lead to more work, maintenance and indirection in the code.

Or maybe I misunderstood: maybe by "using the types" you mean importing more of the types that are already created, effectively removing most or all types in packages/compat/src/types.ts
That would be an even better approach, if it is agreeable!

Or maybe I misunderstood: maybe by "using the types" you mean importing more of the types that are already created, effectively removing most or all new types in packages/compat/src/types.ts in eslint/rewrite

Yes, exactly. As I mentioned, we on the team aren't super familiar with TypeScript and I was relying on my experience of using interfaces in other languages when putting this together. If we can use the types of @types/eslint directly, I'm fine with that.
What I don't want to do is end up maintaining @types/eslint. I'm not super thrilled that we're being held to types that people wrote who aren't on the team and didn't attempt to collaborate with us on. Ultimately, when we do our core rewrite, we'll end up with our type definitions that we'll maintain along with the code.

If we can use the types of @types/eslint directly, I'm fine with that.

Seems pretty good to me - rely on the things that are already available.

What I don't want to do is end up maintaining @types/eslint

Ultimately, when we do our core rewrite, we'll end up with our type definitions that we'll maintain along with the code.

Understood, taking over a large project created and maintained by others is not always easy.
Two notes here:

The DefinitelyTyped types (all of the packages prefixed with @types/) are usually high quality and represent the visible runtime type information of the library. So you may be surprised by the quality.
If ESLint wants to take over publishing the types, great! However, what would be good for the ecosystem is if there's only 1 source to get the full types from though (either @types/eslint or eslint). What would be problematic would be if eslint were to publish only a subset of the types in @types/eslint, making the community have to install 2 packages to get complete types. Gut feel says this would be a messy overlap and would lead to high likelihood of type incompatibilities. So my suggestion here would be for eslint to take over all of the complete types of @types/eslint (and maybe also other related types packages) and probably refrain from publishing any TS types from eslint itself until that has been done. During the migration, TS types could still be used internally in eslint (but not published), and slowly copied over from @types/eslint, with tests to make sure that they don't diverge from @types/eslint.

That's my take on this, maybe a DefinitelyTyped or TS or typescript-eslint community member would want to chime in as well though - I may be missing an opportunity to do this in a cleaner or simpler way.

Just to be clear, I have not personally worked on @types/eslint, the TS team just has a rotation of people who look at DT, and some specific people who tend to work on DT tooling.
Just for the immediate feedback, I would definitely be trying to get the types here in better shape. Using Object is definitely a bad time, it's just not the type you might think it is. ts-eslint does have rules that try and point those out, but it'd end up being better as {}, Record<string, ...>, {}, etc.
I would probably consider depending on @types/eslint here just to prevent breakage, though; I'm not 100% certain what is and isn't compatible between @types/eslint and typescript-eslint, but I assume the former can be used for the latter and be okay. Alternatively, you can create test projects in this repo which serve just to link to the packages and verify that they compile against other types.
As for ESLint itself publishing types, I think that comes down to how breaky you want that to be. Realistically, the best situation is to adopt the types from @types/eslint into ESLint itself so that downstream users don't break, but theoretically if ESLint does another major bump, it could break the types entirely and that would probably be socially fine. I don't have a lot of experience myself in these kinds of transitions. I'm also not sure what is "bad" in @types/eslint, though; they don't look very objectionable to me, mostly boilerplate to deal with AST nodes (maybe goes a little too far into type-only namespace usage).

Just to be clear, I wasn't suggesting we'd export types from the eslint package. That would be a monumental effort for not enough value.
For the rewritten core, though, we'll definitely be exporting our own types.


Animated update frame

Describe the bug
There is an issue in SwiftEntryKit with animated updating frame of alert.
For example if my attribute has
 attributes.positionConstraints.size = .init(width: .fill, height: .intrinsic)
and then increase height of some view inside my alert view like:
someViewHeightConstraint.constant += 80
UIView.animate(withDuration: 0.3) {
         self.layoutIfNeeded()
}

superView will increase height instantly although alert view will be animated.
Screenshots
If applicable, add screenshots to help explain your problem.
iPhone (please complete the following information):

Device: Any
iOS Version: tested on iOS 12
Xcode Version 10.2
SwiftEntryKit Release # 1.0

Screenshots / Video Links
Sent video to your email.

You should replace self.layoutIfNeeded() with SwiftEntryKit.layoutIfNeeded().

Thanks.
Yes, with SwiftEntryKit.layoutIfNeeded() it works, but with SwiftEntryKit.layoutIfNeeded() there is another issue, with safe area now.
Attribute has:
        attributes.entryBackground = .color(color: someColor)
        attributes.positionConstraints.safeArea = .empty(fillSafeArea: true)

and
when alert decrease height safe area is blinking. (sent video to your email.)

Oh, it's not related safe area. On iPhone 7 the same issue with bottom blank space.

@huri000 Hello!
Sorry to disturb you, but have you had a chance to look at this issue? (with bottom blank space when view is decreasing height.)
Thank you so much

Hi @Banck. No. Couldn't reproduce it. I suspect that this is your view's constraints colliding with the framework. If you are were able to send me a reproducible sample project, it would be helpful.

Strange, because if set entryBackground to clear and set background color to my view - everything is fine

View is like:
UIVIew:
-UILabel
-UIView (dynamic height)

UILabel

and all subview has vertical space to each other and we increase, decrease height of UIView (dynamic height)

@huri000  finally, I found where is an issue.
If set roundCorners EntryKit does something like that:
```
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
layer.backgroundColor = backgroundColor?.cgColor
layer.mask = mask

and when height was increased, mask bounds wasn't. That's why there is an empty space.

If remove roundCorners everything is fine.

I've looked at your code, saw that you call applyFrameStyle in layoutSubviews. So seems that's not the reason, but if set roundCorners to .none, everything is fine.

@huri000 Hello!
Here is a sample project
EntryDemo.zip

Thanks, @Banck! I'll investigate and let you know of any findings.

Hey, have you had a chance to consider this issue?
Thank you!

This help me not blink bottom save area -
attributes.positionConstraints = .fullWidth
attributes.positionConstraints.safeArea = .overridden


Correctly set Host on HTTP notifiers

Hi,
According to https://github.com/golang/go/issues/29865, the Host header is ignored is should be set instead using req.Host
Burrow currently supports setting HTTP headers on for the notifiers. It needs a small change for the particular case of the header Host

PR: https://github.com/linkedin/Burrow/pull/614


Return by reference in Core Model

Can we change core/Model.php __get  to &__get so it returns by reference?
This would allow modifying public variables defined within controller from a Model.
Currently it throws this error.
Indirect modification of overloaded property xxx has no effect

Getters are not executed in write context, so how would that allow you to modify anything?

I have tested it locally & when returned by reference I am able to modify properties.
Steps to reproduce:

created a public $data array in Controller.
Added an item to it through a Model.

When modifying __get it works, but this might create a problem with double reference that's why I am asking here instead of submitting a PR as I am not 100% sure it's a clean solution.

@aanbar
Even if it works, the idea is not clean. Isolation of contexts is widely recommended as a good practice and it is more intuitive it to be expected here too.
You can pass an array by reference from the controller to the related model methods. Or, if you want this array (within the controller) to be accessible everywhere within the model, you may add to the model a special setter method that passes the array by reference and assigns it to a protected model's property.
The point is, if you make this pass explicitly, code would be easy for debugging.

I agree with @ivantcholakov, if you need to modify a controller's property from within a model, you better be explicit about it or that operation doesn't belong in the model in the first place.
Not much value in this feature.


Are more type hints desired?

I was interested in adding a different virtual environment / package manager to nox, independently. And noticed you don't have many type hints. The noxfile.py runs mypy, so I'm thinking the answer is yes.
Are more type hints / static typing desired?

If you do:

Is there anything you don't want to be typed?

If required, are you ok with adding typing_extensions as an additional requirement?
Should it be avoided at all costs?

If a situation arises where mypy errors unless a substantial refactor occurs, what is the desired solution?
If it's not deemed possible to resolve the situation with type hints or variable annotations alone. Should the error be silenced, # type: ignore, and a todo, # TODO: ..., be added?

I couldn't have said it any better than @cs01. I'd love more type hints. :)

With the merger of #282 100% of the code has been typed. I'm going to close this as further issues should probably be their own issues.


Delete the workaround for CommandLine.arguments being concurrency-unsafe.

The Swift 6 standard library fixes CommandLine.arguments being unsafe to use in concurrent code, so our workaround is no longer needed.
Checklist:

[x] Code and documentation should follow the style of the Style Guide.
[x] If public symbols are renamed or modified, DocC references should be updated.

@swift-ci please test

@swift-ci please test


Doc bin-cargo-command in README.me

As discussed in #224 (better late than never I hope), bin-cargo-command is now included in the readme.
Secondly, I noticed two other lines were mixed between snake and kebab-case. Went ahead and corrected those.

LGTM, thanks for submitting the PR. Happy holidays!


Update jackson-core 2.13.4 to a version without CVE PRISMA-2023-0067

The library "{}parquet-jackson{}" version 1.13.0 and 1.13.1 contains the vulnerability PRISMA-2023-0067 (https://github.com/FasterXML/jackson-core/pull/827) (https://github.com/IBM/ibm-cos-sdk-java/issues/58)
Please upgrade the shaded library to jackson-core version 2.15.0 to fix it.
Reporter: Gianluca Vagnoni
Assignee: Gang Wu / @wgtmac
Note: This issue was originally created as PARQUET-2300. Please see the migration documentation for further details.

Gang Wu / @wgtmac:
There is a PR to upgrade it: https://github.com/apache/parquet-mr/pull/1093


No such file or directory: 'data/from.map'

See the traceback below. This doesn't work on Ubuntu 14.04 (AWS GPU instance) running Python 2.7.6.
`In [4]: graph2vec.parse_graph('test.txt', extend_paths=2)
IOError                                   Traceback (most recent call last)
 in ()
----> 1 graph2vec.parse_graph('test.txt', extend_paths=2)
/usr/local/lib/python2.7/dist-packages/graph2vec/trainer.pyc in parse_graph(self, graph_path, data_dir, load_edges, extend_paths)
26         graph = parser.Graph(graph_path)
27         self.from_nodes, self.to_nodes = graph.get_mappings()
---> 28         graph.save_mappings(self.output_dir)
29
30         if load_edges:
/usr/local/lib/python2.7/dist-packages/graph2vec/parser.pyc in save_mappings(self, output_dir)
45     def save_mappings(self, output_dir):
46
---> 47         with open(os.path.join(output_dir, 'from.map'), 'w') as from_map_file:
48             json.dump(self.from_nodes_mapping, from_map_file)
49         with open(os.path.join(output_dir, 'to.map'), 'w') as to_map_file:
IOError: [Errno 2] No such file or directory: 'data/from.map'`

I ran into the same issue with Python 2.7.9 on Debian Jessie. I have no clue what is that 'data/from.map' file which must exist there.

@cigrainger It looks like you need to create "data" directory and create two empty files:

from_to.mat
inverse_degrees.mat


Add a flag to allow user-agent spoofing

This would mitigate archives/sources from blocking an instance. IP or some other identifier could still be used as a basis but if MemGator as a user-agent string is treated like how some other services treat curl (i.e., they block script-based requests), allow the user to easily set a spoof flag (e.g., -S) on startup would help prevent this.

Are we going to have a handful of well-known user-agent strings to randomly pick from? If so, would you mind providing some here?

I have added three popular browser user-agents which can be modified later and more user-agents can be added if necessary. The functionality is not tested yet using some echo server though.

From initial testing, the spoof flag does work but I am getting the same user-agent with each request instead of a random one of the three supported.
echoHeader.js
var express = require('express');
var app = express();

app.get(/.*/, function (req, res) {
  console.log(req.headers)
});

app.listen(3000);

archives.json
[
  {
    "id": "uaTest",
    "name": "User-Agent test",
    "timemap": "http://localhost:3000/",
    "timegate": "http://localhost:3000/"
  }
]

MemGator
$ memgator -a archives.json http://matkelly.com
^C $ memgator -a archives.json -S http://matkelly.com
^C $ memgator -a archives.json -S http://matkelly.com
^C $ memgator -a archives.json -S http://matkelly.com
^C $ memgator -a archives.json -S http://matkelly.com
^C $ memgator -a archives.json -S http://matkelly.com

Echo service
$ node echoHeader.js
{ host: 'localhost:3000',
  'user-agent': 'MemGator:1.0-rc4 <@WebSciDL>',
  'accept-encoding': 'gzip' }
{ host: 'localhost:3000',
  'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0',
  'accept-encoding': 'gzip' }
{ host: 'localhost:3000',
  'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0',
  'accept-encoding': 'gzip' }
{ host: 'localhost:3000',
  'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0',
  'accept-encoding': 'gzip' }
{ host: 'localhost:3000',
  'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0',
  'accept-encoding': 'gzip' }
{ host: 'localhost:3000',
  'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0',
  'accept-encoding': 'gzip' }

1c41460a6b06f83c418519e5871f7ea4baf66f48 fixed the aforementioned problem. 👍


Bump versions to 15.3.*

This more closely matches the intention that the current builds are
destined for release with the Visual Studio 15.3 wave. After this, the
(cosmetic) versions will match the logical release. The AssemblyVersion
remains 15.1 for compatibility.

Update MSBuildConstants.CurrentAssemblyFileVersion too I think

This will reset to 15.3.0 right? Should we up the offset to keep what we're at now?

I went back and forth on that, but I think it is more descriptive that way.

@dotnet-bot test OSX Build for CoreCLR please


Adds SDK support for scheduling a workflow to run after a source

Describe your changes and why you are making these changes
This PR adds support for scheduling a workflow to run based on a cascading update. The publish_flow API is changed to now allow users to set a source_flow_id. If this field is set then the cron schedule is ignored.
Note that I will add SDK integration tests for this feature BEFORE merging into main, but it will be in a separate PR. They are currently WIP.
Related issue number (if any)
ENG 2179
Loom demo (if any)
Checklist before requesting a review

[x] I have created a descriptive PR title. The PR title should complete the sentence "This PR...".
[x] I have performed a self-review of my code.
[ ] I have included a small demo of the changes. For the UI, this would be a screenshot or a Loom video.
[ ] If this is a new feature, I have added unit tests and integration tests.
[ ] I have run the integration tests locally and they are passing.
[x] I have run the linter script locally (See python3 scripts/run_linters.py -h for usage).
[ ] All features on the UI continue to work correctly.
[ ] Added one of the following CI labels:

run_integration_test: Runs integration tests
skip_integration_test: Skips integration tests (Should be used when changes are ONLY documentation/UI)

@vsreekanti for API changes

@kenxu95 I'm currently working on the integration tests. I should be able to have that complete within the next hour if that's fine for the release @vsreekanti.

Yeah sounds good to me

@kenxu95 @cw75 Integration test case for this is here https://github.com/aqueducthq/aqueduct/pull/863. (I need to rebase all of these PRs to pick up Kenny's refactoring changes.)


fix: watch the items as a collection

There is no need to set the watched collection to null in order to refresh the pagination, we just use $watchCollection which is made for that.

@euhmeuh there is a conflict :)

@euhmeuh I fixed the existing conflict. Let me know if it's looks good. Thanks.

I close it for inactivity, but feel free to re-open it if needed.


ci: add tests for migration to CiliumEndpointSlice

This PR adds CI to validate the migration path from CiliumEndpoint to CiliumEndpointSlice, by checking that the migration does not affect connectivity on a migrated cluster.
Please ensure your pull request adheres to the following guidelines:

[X] For first time contributors, read Submitting a pull request
[X] All code is covered by unit and/or runtime tests where feasible.
[ ] All commits contain a well written commit description including a title,
description and a Fixes: #XXX line if the commit addresses a particular
GitHub issue.
[ ] If your commit description contains a Fixes: <commit-id> tag, then
please add the commit author[s] as reviewer[s] to this issue.
[X] All commits are signed off. See the section Developer’s Certificate of Origin
[ ] Provide a title or release-note blurb suitable for the release notes.
[ ] Are you a user of Cilium? Please add yourself to the Users doc
[ ] Thanks for contributing!

Fixes: #32057
<!-- Enter the release note text here if needed or remove this section! -->

Just realized I jumped the gun a bit and this is still marked as draft :sweat_smile: Feel free to retag me for review when it's ready

Just realized I jumped the gun a bit and this is still marked as draft 😅 Feel free to retag me for review when it's ready

No problem! Thank you for your feedback, I'll go through them and update accordingly :)

The connectivity test failures for client-egress-l7/pod-to-world/http-to-one.one.one.one, client-egress-l7-named-port/pod-to-world/http-to-one.one.one.one, pod-to-ingress-service/pod-to-ingress-service observed seem to be related to the Cilium Agent restart, rather than migration to CES. -> #32611

Hi @thorn3r, I think I'm ready for a re-review! :)

/test

Thanks everyone for all the help and feedback :) I think I'm ready for another review now (cc @thorn3r)

@viktor-kurchenko @nbusseneau Hi, I think this PR is blocked on codeowner review from ci-structure, would you be able to help with this please?


Run kong prepare as kong user if we are root.

The kong prepare command also needs to be run as kong user (if the entrypoint is executed by root otherwise Kong may create some files (e.g.: the log file defined with KONG_PROXY_ACCESS_LOG) as root. Then nginx, run as kong will have permissions to write in this log file.
To reproduce the error
I used this docker-compose.yml file:
# vim:ft=yaml tabstop=2 shiftwidth=2 softtabstop=2
version: "2"

services:
  db:
    image: postgres:10
    environment:
      - POSTGRES_USER=kong
      - POSTGRES_DB=kong

  kong:
    build: alpine/
    environment:
      - KONG_DATABASE=postgres
      - KONG_PG_HOST=db
      - KONG_PROXY_ACCESS_LOG=/tmp/access.log

So KONG_PROXY_ACCESS_LOG is set to /tmp/access.log.
Then:
$ docker-compose up -d db
Creating network "docker-kong_default" with the default driver
Creating docker-kong_db_1 ... done

# Waiting a few seconds for Postgres to start then
$ docker-compose run kong kong migrations bootstrap
Bootstrapping database...
[...]
27 executed
Database is up-to-date

$ docker-compose up kong
Creating docker-kong_kong_1 ... done
Attaching to docker-kong_kong_1
kong_1  | nginx: [emerg] open() "/tmp/access.log" failed (13: Permission denied)
docker-kong_kong_1 exited with code 1

Thanks for the PR. As of 1.5 / 2.0 this should no longer be the case
-rw-r--r--    1 kong     nogroup          0 Feb  3 19:50 access.log


docs: update documentation for RunnableWithMessageHistory

Description: Update documentation for RunnableWithMessageHistory
Issue: https://github.com/langchain-ai/langchain/issues/16642

I don't have access to an Anthropic API key so I updated things to use OpenAI. Let me know if you'd prefer another provider.

Going to merge existing changes, can follow up if you'd like with changes suggested by comment!


ghc: Default integer-simple usage based one whether GNU MP is available

Motivation for this change
The user's choice is still always respected.
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: ghc
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: ghc
Partial log (click to expand)
/nix/store/6qd7z9w1hi1885almynw4088n8v0xii9-ghc-8.2.2

Success on x86_64-darwin (full log)
Attempted: ghc
Partial log (click to expand)
these paths will be fetched (89.97 MiB download, 900.08 MiB unpacked):
  /nix/store/0a296z0xj0skaijjxgxnv0hdrdl8bxvg-ghc-8.2.2
copying path '/nix/store/0a296z0xj0skaijjxgxnv0hdrdl8bxvg-ghc-8.2.2' from 'https://cache.nixos.org'...
/nix/store/0a296z0xj0skaijjxgxnv0hdrdl8bxvg-ghc-8.2.2


Messages not appearing properly

Dear Rodrigo,
Sorry to bother you again but i have another problem that you may help me more because it is more related to your source code, in the
danny filo issue "Askless throwing errors" there is a part that said
"Additionally after loggin-in loggin-out on the flutter client ... messages "from today" dissapear and are not showing on both clients (although chat works)"
i assume this meant if i were to log out of one of the phone and login the messages going to disappear
i got a similar situation and i didnt touch the code for this part aside from some UI changes and add a few extra parameter
i have 2 phone
phone A is physical
phone B is emulator
i can send messages fine between the two (aside from the occastional server freeze or st but thats for later)
i can see msg phone A sent and msg from phone B
the problem arise when i log out of phone A and relogin, the msg are only from phone B while all the msg from phone A are gone
the way i got it back was that if i then logout of phone B and then relogin (not even go into the chat), Phone A will auto update and get all of the message as normal
and if i log out both of the device and relogin, both will lose their own sent msg
i would like to know how would you deal with this on YOUR source code, which part did you handle it so i can compare and fix it myself
sincerely
Hieunt

Hello! Sorry for the delay, if you are still looking for a solution, please start checking these two files:

getMessages(..) function in /nodejs_websocket_backend/src/domain/services/messages-service.ts file
getIt.get<HiveBoxInstance>().box.deleteAll(getIt.get<HiveBoxInstance>().box.keys); line in nodejs_websocket_backend/src/domain/services/messages-service.ts file, which deletes all local data on logout

I think checking these may give you an initial direction on reaching your goal :)


Support data URLs

Data URLs use base64-encoded data to provide a simple means of directly passing data to interfaces that expect a URL. They are often used in web development for embedding simple resources and/or reducing external dependencies and network requests.
An example of a 1x1 yellow pixel texture:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIW2P8/5/hPwAIAgL/oEs8+AAAAABJRU5ErkJggg==
We should support these in ES for cross-platform compliance.

This specific example of image data encoded as a base64 string seems pretty manageable to implement and I can understand its convenience. Supporting Data URLs in general would be a bit more work, if I am understanding their capabilities correctly from https://en.wikipedia.org/wiki/Data_URI_scheme. We would need to:

Add URL handling code to treat "data:" scheme requests specially
Parse and recognize alternate character sets from the URL (unclear how this is used)
Parse and recognize the 'base64' attribute
Decode percent-encoded strings, if base64 is not used
Decode a base64 string

This happens to "just work" with the NSURL class for iOS, but for other platforms we would have to implement and test this more-or-less from scratch. I would imagine that this doesn't add a whole lot of value for mobile developers, but it does align with our goal of making scene files drop-in-compatible.

It's totally reasonable to implement a subset -- the most common I've seen by far are images as PNGs or GIFs, which is useful for small embedded textures.

A part of this to support base64 texture urls was implemented here: cc399b988a4f73203de16992abe6856de1123bf0, and got merged to master via https://github.com/tangrams/tangram-es/pull/776

Since loading textures via data URL seems to be the primary use case for these, let's consider this "done" for our purposes.


credentials:include wont work as expected

In our projects, we have multiple clients talking to Apollo as a middleware. We need to send our cookies to apollo-server so that the Session Relevant data can be fetched via apollo.
If I set credentials:include and also all CORS headers on server-side no Cookies are sent to our server from the browser.
Hopefully someone can help me with this.
regards,

@cur1ou5soul You should be able to call useGqlCors in a plugin to configure how credentials are handled across all clients
/nuxt-app/plugins/cors.ts
export default defineNuxtPlugin(nuxtApp => {
  useGqlCors({ credentials: 'include' })
})

Just tried actually this doesent work. How can I prove that the setting is enabled?

Just tried actually this doesent work

I've just tested it locally against our API and the requests do in-fact respect the credentials options.
One thing to note is that useGqlCors accepts an optional client param to indicate which client to interface with, when omitted it falls back to the default client.

How can I prove that the setting is enabled?

quick 'dirty' way to check the gql client state is:
export default defineNuxtPlugin((nuxtApp) => {
  useGqlCors({
    credentials: 'include',
    // client: '<client-name>' // defaults to: 'default'
  })

  const defaultClient = nuxtApp?._gqlState.value?.default ? 'default' : Object.keys(nuxtApp?._gqlState.value)[0]

  if (defaultClient) {
    console.log('Client Credentials:', nuxtApp?._gqlState?.value?.[defaultClient]?.options?.credentials)
    // should output: "Client Credentials: include"
  }
})

First of all you are awesome 🙏
Well it says it's on Include but in my local environment where I have to use unsigned certificates my cookies aren't passed through. Can this be a reason for cookies not being sent?

@cur1ou5soul Closing for now as per our conversation on discord. Feel free to reach out to me for any additional assistance.


Version 1.0.2 is not on PyPI

Version 1.0.2 seems to have been released on GitHub but PyPI is still at version 1.0.1. Please upload 1.0.2.

1.0.3 is published now


Interfaces and Traits

Added notes for PHP's Interfaces and Traits.

Messed up the branch on my end, closed and re-opened PR to fix issue.


Support multi-root workspaces

I'd like to use VSCode's multi-root workspace files .code-workspace even for a single folder for some reason. The workspace file could look like:
{
	"folders": [
		{
			"path": "MySwiftProject"
		}
	],
	"settings": {
		"files.autoSave": "afterDelay",
	}
}

The extension should handle this case correctly. For example I might want to have separate settings.json, launch.json per folder. I assume that .code-workspace can be commited to a version control system, so it shouldn't contain non-portable settings, preferably.
For example the lldb setting gets added to the workspace file. There should be an option to add it to the folder:
{
    "lldb.library": "/home/hristo/SDKs/Swift/swift-5.6.1-RELEASE-ubuntu20.04/usr/lib/liblldb.so"
}

So I had to move this setting manually.
A sample setup:

Various setups
{
	"folders": [
		{
			"path": "MySwiftProject"
		}
	],
	"settings": {
		"files.autoSave": "afterDelay",
	}
}

{
	"folders": [
		{
			"path": "MySwiftProject"
		},
                {
                        "path": "MySwiftLibrary"
                }
	],
	"settings": {
		"files.autoSave": "afterDelay",
	}
}

{
	"folders": [
                {
                        "path": "."
                },
		{
			"path": "MySwiftProject"
		}
	],
	"settings": {
		"files.autoSave": "afterDelay",
	}
}

{
	"folders": [
                {
                        "path": "."
                },
		{
			"path": "MySwiftProject"
		},
                {
                        "path": "MySwiftLibrary"
                }
	],
	"settings": {
		"files.autoSave": "afterDelay",
	}
}

I'm not totally sure what you want here. Is it to add an option to set the LLDB option on just one folder of a workspace?
When manually editing settings VSCode allow you to set them at the user, workspace or folder level.

Maybe the best way would be to create a sample project to illustrate what I imagine the behaviour should be. I'll do it later.
Basically I want to have the Swift project in a subdirectory of a root directory. I figured out that for the extension to reliably work I need to use a workspace file. It appears to work well enough. Yet some setting that are machine specific are set not quite where I'd like them to be. I can move them around but sometimes the extension (I think so) tries to put back the modifications in the wrong places on update.

Apart from the LLDB lib setting I setup at start up. VSCode does all the settings saving and the swift extension has no control over where they go. If you have multiple folders in your workspace though, the settings does have an option to set the setting for a folder. Haven't looked into it in great detail though

I want to have a project structure such as:
~/MyProjectRoot/
  |
  +--- .vscode/
  |      |
  |      +--- settings.json  - shared settings?  <---- "lldb.library": "/home/xxx/SDKs/Swift/swift-5.6.1-RELEASE-ubuntu20.04/usr/lib/liblldb.so"
  |
  +--- MySwiftProject1
  |      |
  |      +--- .vscode/
  |             |
  |             +--- launch.json
  |             |
  |             \---- Package.swift
  |
  +--- MySwiftProject2
  |      |
  |      +--- .vscode/
  |             |
  |             +--- launch.json
  |             |
  |             \---- Package.swift
  |
  +--- README.md

If I use Open Folder on the root the extension doesn't detect the Package.swift project. If I use a .code-workspace the extension works as I expect it to do. I need to do some manual adjustment to the settings/launch.json but it works.
To me it makes sense to put lldb setting in the root but then everytime the extension ask me to create it on opening the project.
{
    "lldb.library": "/home/hristo/SDKs/Swift/swift-5.6.1-RELEASE-ubuntu20.04/usr/lib/liblldb.so"
}

Can we have another option to put the setting in the root folder if there are multiple project in a folder? Does this make sense?
Maybe the extension could look for projects in the subfolders but I guess that would be another feature.

Closing this as the issue seems to be with VS Code more than the Swift extension


[FEAT] - why don't we make website along side the API using the data from the API?

What feature would you like to see?
website using the data in the API so it is easier for non-tech people to have the data.
Possible implementation
No response
Additional information
No response

I agree that it's a great idea to have, but what if we go one step further and encourage others to make web apps that consume the data and we use the new front/landing page to keep an index of them?
API consumption is a nice mini project for a SPA and the possibilities are endless, so I'd be very interested to see the different ways people make use of the API.
I have the API registered on RapidAPI and that can handle API keys etc.
Perhaps we can add another document giving basic steps to proper use of the data from the API itself? Of course for this I will need to:

Improve documentation on the Rapid API Hub instance
Include steps in generating an API key
Rapid API has nice code snippets for use with different languages and libraries too which opens it up to a bigger audience

One other idea would be to create a package that makes for easy widget style implementation of the API. I will look into moving this project over to an organisation to try and keep it all in one place.

Yes even better, I haven't worked with something like that before so it's a new journey for me and I'm sure I will have fun learning about it and maybe helping you implement it.

Yes even better, I haven't worked with something like that before so it's a new journey for me and I'm sure I will have fun learning about it and maybe helping you implement it.

If you build anything with it be sure to raise an issue/make a PR to include a link to it on the homepage! And also ask any questions if you have any on here or find my contact details on my profile. 👊

I think we can start brainstorming about this :hammer_and_wrench:

@TAKANOME-DEV Now that it's in an organization, we can make more repos to have different types of front end approaches.
There is one example frontend app that is linked from the homepage already, but it's the only one so far.

Oh I didn't pay attention to that, I will check it out.
Yeah you can create more repos for examples 🚀


Xarchiver fails to open a zip file due to missing binary zipinfo

Issue description
Having installed xarchiver by adding it to my array of systemPackages I tried to open a zip file with it. Though instead of opening the file I got the error message:

Failed to execute child process “zipinfo” (No such file or directory)

Steps to reproduce
Install NixOs 17.09, add xarchiver to your system packages, download a zip through firefox and have it open in xarchiver.
I have not attempted this on any other than this machine.
Technical details
$ nix-shell -p nix-info --run "nix-info -m"

system: "x86_64-linux"
host os: Linux 4.9.77, NixOS, 17.09.2873.4c3c0e824aa (Hummingbird)
multi-user?: yes
sandbox: no
version: nix-env (Nix) 1.11.16
channels(root): "nixos-17.09.2873.4c3c0e824aa"
channels(rovanion): ""
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs

"unzip" should provide zipinfo. We will need to wrap unzip into xarchiver for this to get fixed.

I've got a changeset here: https://github.com/emmanuelrosa/nixpkgs/commit/c7078ed34fc1b5615503be50facc9191b5877637
But.. it's missing support for xz, arj, rpm, and dep. xz because I just realized I forgot to add it, arj because unarj failed to build. rpm and dep because I could not figure out which packages to use; I looked through the xarchiver source code but could not find the commands it uses.
I added coreutils because it uses dd for some operations.

Fixed in #101788


Too many blocks popped on shutdown

Blocks are popped at shutdown until the undo buffer is empty.  It seems more correct to pop until the last irreversible block.

Fixed.


Used the result of assemble to directly creating the hint maps.

Stack:

#6489
#6488
#6487 ⬅

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.

This change is


Add make gotidy for lib-common as a postupgradecommand

needed for https://github.com/openstack-k8s-operators/lib-common/pull/221


Adds Tested Fast Google Command

/fg shows

@I3uckwheat asked for this. It was a fun task.

I kinda wish I hadn't deleted the .env sample file. I had to mess this up a little somehow, right?


waybar: 0.10.4 -> 0.11.0

Description of changes
Closes https://github.com/NixOS/nixpkgs/pull/341520
Including patch for tray regression

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

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

1 package built:

waybar


Are All Chinese Exchanges really shutdown and inactive?

I used to use our BTCC module for market data and one day data flow stopped. What about Huobi, BitVC, other Chinese exchanges? Are any still active?

As the crackdown of Bitcoin exchanges in China, BitVC is closed, Huobi moved out as www.huobi.pro, and okcoin moved to www.okex.com, btcchina is closed - I think its overseas branch www.btcc.com is still in operation.

I'll probably remove those modules from XChange then...

Maybe they can be modified to
okex:
https://www.okex.com
okex API:
https://www.okex.com/intro_apiOverview.html
huobi.pro:
https://www.huobi.pro
huobi.pro API:
https://github.com/huobiapi/API_Docs_en/wiki

@winwish I changed the endpoints for okex, and none of the demos worked.

@winwish I removed Huobi completely as the new API is completely different so it seems.

I also removed Jubi, chbtc, btc38.


CONFIG: Change Solution Name

Closes #9
@cjdutoit

@ZafarUrakov please limit your commits to the issue your closing. Way more things going on in this PR that do not relate to the "Change Solution Name".
If need be link the alternate Issues that your closing, create more issues appropriately if needed to address the commits and or provide in the Issue comments what the Issue is addressing.
@cjdutoit ^^^^ FYI


#53 - wrong sitemap-image namespace

I got this error on webmaster tools
Your Sitemap or Sitemap index file doesn't properly declare the namespace. Expected: http://www.google.com/schemas/sitemap-image/1.1 Found: https://www.google.com/schemas/sitemap-image/1.1

@nucreativa You mind updating the test suite and I'll merge it.
Thanks for your contribution.

done. btw thanks for this great cartographer replacement  👍

Thanks


docker container always restarts

Hi Freddy,
at the moment i have 5 nav containers running on my local system.
however on reboot of my machine they all boot up as well. (which takes most of my RAM away as they each have 3G on a win10 machine)
i know i can stop them with the docker stop command.
i had a further look and have seen that the origin is found in the restart parameter so for now i have updated my containers with the following command to counter this behavior
docker update --restart=no <containername>
however the source of this behaviour is found in the new-navcontainer file (line 155)
    $parameters = @(
                    "--name $containerName",
                    "--hostname $containerName",
                    "--env auth=$auth"
                    "--env username=$vmAdminUsername",
                    "--env ExitOnError=N",
                    "--env locale=$locale",
                    "--env licenseFile=""$containerLicenseFile""",
                    "--memory $memoryLimit",
                    "--volume ""${demoFolder}:$containerDemoFolder""",
                    "--volume ""${myFolder}:C:\Run\my""",
                    "--restart always"
                   )

is there a possibility to make this parameter accessible from the command so i don't have to update them anymore? (i'm still new to github so i don't see how i need to edit and suggest this yet)
kind regards,
sodgeronimo

You can add parameters to new-navcontainer like:
-additionalParameters @("--restart no")
That should overwrite the prior setting for --restart.
You could also install Windows Server 2016 - which doesn't pre-allocate memory for containers but instead shares the resources from the host to all the containers.

thanks for the quick respons @freddydk
i didnt know it would overrule the setting, another thing learned. i just tried it with the new-csidedevcontainer and it works like a charm when i inspect my container :)
looking forward to seeing you on navtechdays next week


Will support Windows platform?

Most of the editing work is still carried out on the PC. It would be great if it supports the windows platform.

Hi @cozyboy,
At the moment, the webview_flutter plugin only supports Android, iOS and web platforms.
I am very much excited to add support for other platforms. Will definitely add it once this following item is closed, as quill_html_editor relies up on this webview plugin.
Please refer to the open issue in flutter repo.
Closing this issue for now, will comment here once the feature is available.
Thank you!


tables>processing>bordered_tables>cells>indentification.py identify_cells raise ZeroDivisionError: division by zero

test data
    h_lines_arr = np.array(
        [
            [250, 707, 2302, 707],
            [250, 825, 2302, 825],
            [250, 954, 2302, 954],
            [250, 1066, 1977, 1066],
            [1977, 1066, 2302, 1066],
            [250, 1192, 1703, 1192],
            [1977, 1192, 2302, 1192],
            [250, 1268, 1703, 1268],
            [1977, 1268, 2302, 1268],
            [250, 1346, 1703, 1346],
            [1977, 1346, 2302, 1346],
            [250, 1423, 1703, 1423],
            [1977, 1423, 2302, 1423],
            [250, 1500, 1703, 1500],
            [1977, 1500, 2302, 1500],
            [250, 1770, 1703, 1770],
            [1977, 1770, 2302, 1770],
            [250, 2118, 1703, 2118],
            [1977, 2118, 2302, 2118],
            [250, 2301, 1703, 2301],
            [1977, 2301, 2302, 2301],
            [250, 2401, 1703, 2401],
            [1977, 2401, 2302, 2401],
            [250, 2498, 1703, 2498],
            [1703, 2498, 1703, 2498],
            [1977, 2498, 2302, 2498],
            [250, 2601, 981, 2601],
            [1977, 2601, 2302, 2601],
            [366, 2736, 981, 2736],
            [1977, 2736, 2302, 2736],
            [366, 2872, 981, 2872],
            [1977, 2872, 2302, 2872],
            [366, 3007, 2302, 3007],
            [366, 3143, 2302, 3143],
            [250, 3278, 2302, 3278],
            [250, 2040, 2302, 2040],
            [250, 2194, 2302, 2194],
        ],
        np.int64,
    )
    v_lines_array = np.array(
        [
            [250, 707, 250, 3278],
            [366, 1066, 366, 2118],
            [366, 2601, 366, 3278],
            [523, 707, 523, 1066],
            [981, 1066, 981, 3278],
            [1222, 825, 1222, 1066],
            [1300, 1066, 1300, 2118],
            [1434, 707, 1434, 1066],
            [1703, 707, 1703, 2498],
            [1977, 825, 1977, 3007],
            [2302, 707, 2302, 3278],
        ],
        np.int64,
    )

remove it's wrapper @njit("int64[:,:](int64[:,:],int64[:,:])", cache=True, fastmath=True),exception not raise

Can confirm.
The problem occurs due to lines 30 and 31:
l_corresponds = -0.02 <= (x1i - x1j) / (x2i - x1i) <= 0.02 r_corresponds = -0.02 <= (x2i - x2j) / (x2i - x1i) <= 0.02
with, at line 22:
x1i, y1i, x2i, y2i = h_lines_arr[i][:]
Basically, if the x coordinates of a horizontal line match (i.e. the line is 1 pixel wide), this generates a division by 0.
In the example ablve, for instance, h_lines_arr contains the following line:
[1703, 2498, 1703, 2498],
Commenting the @njit(...) wrapper at line 11 just turns the ZeroDivisionError into a RuntimeWarning on my end.
Ideally, one-pixel-wide horizontal lines (i.e. points) shouldn't have been identified as horizontal lines in the first place.
A quick fix would be to add this before line 30:
if x1i == x2i:     continue


add mllama support

What does this PR do?

Fixes # (issue)
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

python3 run_pipeline.py  --model_name_or_path meta-llama/Llama-3.2-11B-Vision-Instruct  --bf16 --use_hpu_graph

lora fintune is also enabled by my side but I need the finetune example in idefics2 PR,once idefics2 is merged, will extend the example to mllama

throught(tokens/s)
A100
Gaudi2

BF16
12.83
33.68

command:
Gaudi2 python3 run_pipeline.py --model_name_or_path meta-llama/Llama-3.2-11B-Vision-Instruct --bf16 --use_hpu_graphs
A100: run_pipeline.py --model_name_or_path meta-llama/Llama-3.2-11B-Vision-Instruct --bf16


ci(lint): introduce golangci-lint

Add a few more linters to check spellings and conversion, a pre-fixing PR is needed to be merged first: #1876.


Workflow query optimisation

Proposed changes

Backend optimization separating workflows from workflow runs (will fix scaled setup table issues)
Frontend integration of backend changes for tables
loading states introduced for various Tables and graphs for analytics

Summarize your changes here to communicate with the maintainers and make sure to put the link of that issue
Types of changes
What types of changes does your code introduce to Litmus? Put an x in the boxes that apply

[ ] New feature (non-breaking change which adds functionality)
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices applies)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[ ] I have read the CONTRIBUTING doc
[ ] I have signed the commit for DCO to be passed.
[ ] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works (if appropriate)
[ ] I have added necessary documentation (if appropriate)

Dependency

Please add the links to the dependent PR need to be merged before this (if any).

Special notes for your reviewer:

@vanshBhatia-A4k9 PTAL at the package lock file it has many changes.

/run-e2e


Insert selected element with '.' and '(' when preselect == always

Hello everyone!
In VS Code, when you have autocompletion opened and you press ., it inserts the selected option. This also happens when you press (. Is there a way to make Neovim to work like this when preselect is always? so it inserts the first option. It works amazing when you select another option with , but when it's the first option, I need to press  or select the first option.
Thanks in advance.

It's called commitCharacters in LSP spec.

That is a valid issue.
I think it needs to be implemented in v3.
However, v3 is so difficult and busy that I don't know when it can be implemented.

Just to add to it: I think it's a great feature, but not sure if the effort worth it. Vim autocomplete with auto-insert is pretty good and it's just when it happens with the first element. In VS Code this feature actually worth it because otherwise you have to press Enter plus the commitCharacter.

It would be nice to have actually.


C6 and PSIC exclusive

Hey, what a nifty utility, thanks.
I am on Fedora 17 @ Ryzen 1700 and I have stock BIOS with stock settings, only SMT enabled and Advanced C-States Control disabled. When I try ryzen-stabilizator, I can only disable C6 or PS Idle Control. Is this expected behavior? Is this an exclusive setting?
[lzap@box ryzen-stabilizator]$ sudo ./ryzen-stabilizator --disable-c6
Ryzen Stabilizator Tabajara unspecified/git version
Copyright (C) 2018 Sergio Correia<EMAIL_ADDRESS>
Disabling C6 C-state:   SUCCESS

Power Supply Idle Control workaround is ENABLED.
C6 C-state is DISABLED.
ASLR is DISABLED.
Processor boosting is DISABLED.
[lzap@box ryzen-stabilizator]$ sudo ./ryzen-stabilizator
Ryzen Stabilizator Tabajara unspecified/git version
Copyright (C) 2018 Sergio Correia<EMAIL_ADDRESS>

Power Supply Idle Control workaround is ENABLED.
C6 C-state is DISABLED.
ASLR is DISABLED.
Processor boosting is DISABLED.
[lzap@box ryzen-stabilizator]$ sudo ./ryzen-stabilizator --disable-psicworkaround
Ryzen Stabilizator Tabajara unspecified/git version
Copyright (C) 2018 Sergio Correia<EMAIL_ADDRESS>
Disabling Power Supply Idle Control Workaround:   SUCCESS

Power Supply Idle Control workaround is DISABLED.
C6 C-state is ENABLED.
ASLR is DISABLED.
Processor boosting is DISABLED.
[lzap@box ryzen-stabilizator]$ sudo ./ryzen-stabilizator
Ryzen Stabilizator Tabajara unspecified/git version
Copyright (C) 2018 Sergio Correia<EMAIL_ADDRESS>

Power Supply Idle Control workaround is DISABLED.
C6 C-state is ENABLED.
ASLR is DISABLED.
Processor boosting is DISABLED.

Hello, and sorry for the delay; I am in the middle of a move, so things have been busy over here.
The "PS idle control" setting disables C6 package, while "C6" disables both C6 core and package, which is why if you disable "C6", the workaround will show as "enabled". Likewise, if you enable PSIC, "C6" will show as disabled, since C6 package will be disabled, so the output you are seeing is expected.
In my motherboard -- ASRock AB350 Pro4 -- and some others, setting PS idle control to "Typical current idle" will disable C6 package, among probably other things. AMD itself does not disclose much information about it. I got something like "unfortunately the information you are requesting is private and confidential and not publicly available at this time", when asked about more details on this feature.
However, looks like in some motherboards -- as per the info on this thread https://bugzilla.kernel.org/show_bug.cgi?id=196683 --, that same setting does not disable C6 package, so it may be a good idea to change the settings in here to "C6 core" and "C6 package", to be more clear about what it does.
In my specific case, if I use a current BIOS/AGESA/microcode, disabling only C6 package (the feature dubbed PS idle control in ryzen-stabilizator), I don't get the idle reboots. When debugging some other issue, though, I reverted back to an old BIOS/AGESA/microcode, and simply disabling C6 package was not enough and I still got the reboots, and in such a situation, I had to disable both C6 core and package.
It would be great if AMD released any technical information on the issue :)

Thanks a bunch, I am crossing my fingers. ASUS B350 here, upgraded from very old BIOS to newest AGESA because I experienced freeze once. Got my Ryzen 1700 replaced as well because I was hitting the GCC/VM bug. Hopefully I am good now. I disabled all the three tho with latest AGESA just to be sure.

Year later, I can report that this helped me a lot - not a single freeze anymore. I wonder if the newest kernel 5.0 resolved this and I don't need this anymore. Need to try.


This fixes module not found during 'build'

Fixes  'npm run build':
> build
> vite build

vite v5.4.11 building for production...
✓ 58 modules transformed.
x Build failed in 2.16s
error during build:
[vite:css] [postcss] Cannot find module '../../../../vendor/filament/filament/tailwind.config.preset'

Solution
This adds an extra '../' into the path location at import preset in the tailwind.config.js file.

@mmonari Thank you! :)


Better defined type behavior with traits

The module that defines the behavior of types could be tightened up a bit.
For the requirements of #10, we needed to support three behaviors:

ABI encoding/decoding
storage load/store/copy
memory load/store/copy

These behaviors were implemented for each type, but were not unified under traits. For example, every type defined in the types module implements encode and decode, but there is no ABIEncoding trait unifying these functions across each type. It should be possible to consolidate most of the behavior under Storage, Memory, and ABIEnciding traits, but may be more complicated than that.

Another

accidentally closed


feat(typography): Implement initial typography.

Implements initial variables, mixins and CSS classes for typography.
Resolves #4542.
[Delivers #126819303]

@sgomes would you mind adding a README.md to this directory showing simple example usage of the component?

Once README is added 💎 LGTM!

README added! Not merging just yet in case you want to take a look at it.

@sgomes 💎 LGTM once @Garbee's comments are addressed.

Rebased on top of latest changes and removed dependency on mdl-base (no JS, so it's not necessary).

LGTM

Sweet, thanks @Garbee! Merging! 💃


⚠ Bofrost.lu has degraded performance

In 143de72, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1227 ms

Resolved: Bofrost.lu performance has improved in 0fe2d92 after 6 minutes.


feat: add nested lists support

FX-3836
Description
We are adding support for nested lists styling from Figma. We are also adjusting the spacing to be consistent with said Figma styles
How to test

Check Happo and the new examples on Storybook

Screenshots
No screenshots
Development checks

[x] Add changeset according to guidelines (if needed)
[x] Read CONTRIBUTING.md and Component API principles
[x] Make sure that additions and changes on design follow Toptal's BASE design, and it's been already discussed with designers at #-base-core
[x] Annotate all props in component with documentation
[x] Create examples for component
[x] Ensure that deployed demo has expected results and good examples
[x] Ensure the changed/created components have not caused accessibility issues. How to use accessibility plugin in storybook.
[x] Self reviewed
[x] Covered with tests

Breaking change

[NA] codemod is created and showcased in the changeset
[NA] test alpha package of Picasso in StaffPortal

All development checks should be done and set checked to pass the
GitHub Bot: TODOLess action

PR commands

List of available commands:

@toptal-bot run package:alpha-release - Release alpha version
@toptal-anvil ping reviewers - Ping FX team for review

PR Review Guidelines

When to approve? ✅
You are OK with merging this PR and

You have no extra requests.
You have optional requests.

Add nit: to your comment. (ex. nit: I'd rename this variable from makeCircle to getCircle)

When to request changes? ❌
You are not OK with merging this PR because

Something is broken after the changes.
Acceptance criteria is not reached.
Code is dirty.

When to comment (neither ✅ nor ❌)
You want your comments to be addressed before merging this PR in cases like:

There are leftovers like unnecessary logs, comments, etc.
You have an opinionated comment regarding the code that requires a discussion.
You have questions.

How to handle the comments?

An owner of a comment is the only one who can resolve it.
An owner of a comment must resolve it when it's addressed.
A PR owner must reply with ✅ when a comment is addressed.

also in RichTextEditor for ordered list I used different list types for nested ones, but I forgot to check with Matt, if the decision is that we should always have numeric type, we will need to update this also in RichTextEditor. Also we can have follow up to update RichTextEditor to also use native disc and circle, we are using svg there

we are missing changeset for provider and it looks weird that different types of nested lists starts on different position thinking, is it expected?

I'm still talking with Matt about it, but in a summary, unordered lists have a box surrounding them, while ordered lists don't have it

Matt is making some adjustments to it, when he is finished I will update it to follow the new design

also in RichTextEditor for ordered list I used different list types for nested ones, but I forgot to check with Matt, if the decision is that we should always have numeric type, we will need to update this also in RichTextEditor. Also we can have follow up to update RichTextEditor to also use native disc and circle, we are using svg there

We need to support roman and alpha letters for numbering, but by default, it should be only numerals, I'm still talking with Matt about it though

@toptal-anvil ping reviewers

@toptal-anvil ping reviewers


scipy.interpolate.griddata using method='linear' produces NaNs

My issue is about NaNs produced using scipy.interpolate.griddata.
Consider that the values from values.csv are defined for each point from points.csv.
We would like to get interpolated values for points from xi.csv.
In the following code snippet I check whether the interpolated values contain any NaNs.
Reproducing code example:

from scipy.interpolate import griddata
import numpy as np
import pandas as pd

points = pd.read_csv('points.csv').values
values = pd.read_csv('values.csv').values
xi = pd.read_csv('xi.csv').values

interpolated = griddata(points, values, xi, method='linear', rescale=True)

idx_nan = np.where(np.isnan(interpolated))[0]
if idx_nan.any():
    print('NaNs are present')
    print(xi[idx_nan])
else:
    print('Success')

I used two sets of inputs for points and values: with_duplicates and no_duplicates.
In the former ones there are points with the duplicate coordinates, while in the other one they are eliminated.
Outputs
With Duplicates

NaNs are present
[[ 2.   0.   0.  30. ]
 [ 2.   0.   0.  50. ]
 [ 2.   0.   0.  70. ]
 [ 2.5  0.   0.  30. ]
 [ 2.5  0.   0.  50. ]
 [ 2.5  0.   0.  70. ]
 [ 3.   0.   0.  30. ]
 [ 3.   0.   0.  50. ]
 [ 3.   0.   0.  70. ]
 [ 3.5  0.   0.  30. ]
 [ 3.5  0.   0.  50. ]
 [ 3.5  0.   0.  70. ]
 [ 4.   0.   0.  30. ]
 [ 4.   0.   0.  50. ]
 [ 4.   0.   0.  70. ]
 [ 4.5  0.   0.  30. ]
 [ 4.5  0.   0.  50. ]
 [ 4.5  0.   0.  70. ]
 [ 5.   0.   0.  30. ]
 [ 5.   0.   0.  50. ]
 [ 5.   0.   0.  70. ]]

I wonder why the NaNs were generated not for all points.
Note, that there were no NaNs for [1 0 0 30] point, for example.
The points, where we have NaNs as a results on interpolation are actually present in points.csv, for example [5, 0, 0, 30] is there.
Thus, it is surprising why interpolation led to NaNs even if there is a perfect match in the points array.
No Duplicates
Success

I removed duplicate points and re-ran the code snippet. Now it was a success.
It is not clear, though, why there would be such a behavior with with_duplicates. If the point from xi matches point from points array, then it seems that the algorithm should just pick the corresponding value.
Scipy/Numpy/Python version information:

import sys, scipy, numpy; print(scipy.__version__, numpy.__version__, sys.version_info)
1.2.1 1.16.3 sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0)

Files with data
xi.zip
with_duplicates.zip
no_duplicates.zip

Is there any updates regarding this issue?

TL;DR: these nans come from QHull's triangulating the data; the griddata routine treats these nan-producing points as being outside and refuses to extrapolate.
Running locally the snippet from the OP with data from with_duplicates.zip and xi.zip above, produces two nans at indices 18 and 19:
In [1]: path = './'

In [2]: from scipy.interpolate import griddata
   ...: import numpy as np
   ...: import pandas as pd
   ...:
   ...: points = pd.read_csv(path + 'points.csv').values
   ...: values = pd.read_csv(path + 'values.csv').values

In [3]: xi = pd.read_csv(path + 'xi.csv').values

In [4]: interpolated = griddata(points, values, xi, method='linear', rescale=True)

In [5]: interpolated.T
Out[5]:
array([[ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
         1.,  1.,  1.,  1.,  1., nan, nan,  1.,  1.,  1.,  1.,  1.,  1.,
         1.]])

Changing the fill_value from the default nan to some other value changes precisely these elements:
In [9]: griddata(points, values, xi, method='linear', rescale=True, fill_value=42).T
Out[9]:
array([[ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
         1.,  1.,  1.,  1.,  1., 42., 42.,  1.,  1.,  1.,  1.,  1.,  1.,
         1.]])

To verify, using this patch
diff --git a/scipy/interpolate/interpnd.pyx b/scipy/interpolate/interpnd.pyx
index e323997500..0abefd54ca 100644
--- a/scipy/interpolate/interpnd.pyx
+++ b/scipy/interpolate/interpnd.pyx
@@ -324,6 +324,10 @@ class LinearNDInterpolator(NDInterpolatorBase):

                 if isimplex == -1:
                     # don't extrapolate
+
+                    with gil:
+                        print("isimplex=-1 at i=", i)
+
                     for k in range(nvalues):
                         out[i,k] = fill_value
                     continue

and reruning the snippets above, prints
In [9]: griddata(points, values, xi, method='linear', rescale=True, fill_value=42).T
isimplex=-1 at i= 18
isimplex=-1 at i= 19
Out[9]:
array([[ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
         1.,  1.,  1.,  1.,  1., 42., 42.,  1.,  1.,  1.,  1.,  1.,  1.,
         1.]])

So, all in all, QHull gets confused by these duplicate points (as a guess, the corresponding simplices are degenerate) and griddata bails out with the fill_value. There is not much else scipy.interpolate can do really.
issue

It is not clear, though, why there would be such a behavior with with_duplicates. If the point from xi matches point from points array, then it seems that the algorithm should just pick the corresponding value.

This expectation is similar to https://github.com/scipy/scipy/issues/11381, and the answer is the same: no, data needs user preprocessing. Here it is actually even more clear-cut than in gh-11381. Imagine that the values are different for duplicate points. What should griddata do in that case?
Conclusing, the answer is to filter out duplicates on the user side. There is nothing to track on the scipy.interpolate side, so I'm closing the issue. Feel free to keep discussing  however!
Thanks @ivanovmg , all.


[ Orient version 2.2.0-rc1 ] Binary Protocol compatibility failure

The db_open command to the server seems to not works anymore:
import pyorient
client = pyorient.OrientDB( "localhost", 2424 )
client.db_open(
    'test_tr', "admin", "admin", pyorient.DB_TYPE_GRAPH
)

# Traceback (most recent call last):
#   File "<stdin>", line 2, in <module>
#   File "pyorient/orient.py", line 379, in db_open
#     .prepare((db_name, user, password, db_type, client_id)).send().fetch_response()
#   File "pyorient/messages/database.py", line 100, in fetch_response
#     result = super(DbOpenMessage, self).fetch_response()
#   File "pyorient/messages/base.py", line 256, in fetch_response
#     self._decode_all()
#   File "pyorient/messages/base.py", line 240, in _decode_all
#     self._decode_header()
#   File "pyorient/messages/base.py", line 192, in _decode_header
#     [ exception_message.decode( 'utf8' ) ]
# pyorient.exceptions.PyOrientSecurityAccessException: com.orientechnologies.orient.core.exception.OSecurityAccessException - User or password not valid for database: 'test_tr'
#     Storage URL="memory:test_tr"

I tried with root credentials also but i got the same result ( this time i added the binary dump for the request ):
client.db_open(
    db_name, "root", "root", pyorient.DB_TYPE_GRAPH, ""
)

#  Request :
#  00000000: 03 00 00 00 26 00 00 00  28 4F 72 69 65 6E 74 44  ....&...(OrientD
#  00000010: 42 20 50 79 74 68 6F 6E  20 62 69 6E 61 72 79 20  B Python binary
#  00000020: 63 6C 69 65 6E 74 20 28  70 79 6F 72 69 65 6E 74  client (pyorient
#  00000030: 29 00 00 00 05 31 2E 34  2E 39 00 21 00 00 00 00  )....1.4.9.!....
#  00000040: 00 00 00 13 4F 52 65 63  6F 72 64 44 6F 63 75 6D  ....ORecordDocum
#  00000050: 65 6E 74 32 63 73 76 00  00 00 00 07 74 65 73 74  ent2csv.....test
#  00000060: 5F 74 72 00 00 00 05 67  72 61 70 68 00 00 00 04  _tr....graph....
#  00000070: 72 6F 6F 74 00 00 00 04  72 6F 6F 74              root....root

#  Error
#  Traceback (most recent call last):
#    File "/Users/Hashashiyyin/PycharmProjects/pyorient/tests/test_record_contents.py", line 35, in setUp
#      db_name, "root", "root", pyorient.DB_TYPE_GRAPH, ""
#    File "/Users/Hashashiyyin/PycharmProjects/pyorient/pyorient/orient.py", line 379, in db_open
#      .prepare((db_name, user, password, db_type, client_id)).send().fetch_response()
#    File "/Users/Hashashiyyin/PycharmProjects/pyorient/pyorient/messages/database.py", line 100, in fetch_response
#      result = super(DbOpenMessage, self).fetch_response()
#    File "/Users/Hashashiyyin/PycharmProjects/pyorient/pyorient/messages/base.py", line 256, in fetch_response
#      self._decode_all()
#    File "/Users/Hashashiyyin/PycharmProjects/pyorient/pyorient/messages/base.py", line 240, in _decode_all
#      self._decode_header()
#    File "/Users/Hashashiyyin/PycharmProjects/pyorient/pyorient/messages/base.py", line 192, in _decode_header
#      [ exception_message.decode( 'utf8' ) ]
#  PyOrientSecurityAccessException: com.orientechnologies.orient.core.exception.OSecurityAccessException - User or password not valid for database: 'test_tr'
#      Storage URL="memory:test_tr"

When i try from the console instead:
orientdb> connect remote:localhost/test_tr admin admin

Connecting to database [remote:localhost/test_tr] with user 'admin'...OK
orientdb {db=test_tr}>

I think that the new protocol 36 is no more compatible with the previous. I studied the binary requests made from the console and from the python driver, they are very different.
#### Python driver:
2016-05-14 16:11:45:955 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading byte (1 byte)... [OChannelBinaryServer]
2016-05-14 16:11:47:906 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read byte: 3 [OChannelBinaryServer]
2016-05-14 16:11:47:908 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading int (4 bytes)... [OChannelBinaryServer]
2016-05-14 16:11:47:910 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read int: 37 [OChannelBinaryServer]
2016-05-14 16:11:47:911 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:11:47:912 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read string: OrientDB Python binary client (pyorient) [OChannelBinaryServer]
2016-05-14 16:11:47:913 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:11:47:913 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read string: 1.4.9 [OChannelBinaryServer]
2016-05-14 16:11:47:914 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading short (2 bytes)... [OChannelBinaryServer]
2016-05-14 16:11:47:919 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read short: 33 [OChannelBinaryServer]
2016-05-14 16:11:47:922 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:11:47:923 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read string:  [OChannelBinaryServer]
2016-05-14 16:11:47:924 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:11:47:925 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read string: ORecordDocument2csv [OChannelBinaryServer]
2016-05-14 16:11:47:926 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading boolean (1 byte)... [OChannelBinaryServer]
2016-05-14 16:11:47:927 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read boolean: false [OChannelBinaryServer]
2016-05-14 16:11:47:928 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:11:47:939 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read string: test_tr [OChannelBinaryServer]
2016-05-14 16:11:47:942 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:11:47:944 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read string: graph [OChannelBinaryServer]
2016-05-14 16:11:47:947 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:11:47:948 INFO  {db=test_tr} /<IP_ADDRESS>:65279 - Read string: admin [OChannelBinaryServer]

#### Java driver console
2016-05-14 16:27:25:302 INFO  /<IP_ADDRESS>:65317 - Reading byte (1 byte)... [OChannelBinaryServer]
2016-05-14 16:27:25:306 INFO  /<IP_ADDRESS>:65317 - Read byte: 3 [OChannelBinaryServer]
2016-05-14 16:27:25:307 INFO  /<IP_ADDRESS>:65317 - Reading int (4 bytes)... [OChannelBinaryServer]
2016-05-14 16:27:25:307 INFO  /<IP_ADDRESS>:65317 - Read int: -2 [OChannelBinaryServer]
2016-05-14 16:27:25:308 INFO  /<IP_ADDRESS>:65317 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:27:25:309 INFO  /<IP_ADDRESS>:65317 - Read string: OrientDB Java [OChannelBinaryServer]
2016-05-14 16:27:25:309 INFO  /<IP_ADDRESS>:65317 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:27:25:310 INFO  /<IP_ADDRESS>:65317 - Read string: 2.2.0-rc1 [OChannelBinaryServer]
2016-05-14 16:27:25:311 INFO  /<IP_ADDRESS>:65317 - Reading short (2 bytes)... [OChannelBinaryServer]
2016-05-14 16:27:25:311 INFO  /<IP_ADDRESS>:65317 - Read short: 36 [OChannelBinaryServer]
2016-05-14 16:27:25:312 INFO  /<IP_ADDRESS>:65317 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:27:25:313 INFO  /<IP_ADDRESS>:65317 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:27:25:313 INFO  /<IP_ADDRESS>:65317 - Read string: ORecordSerializerBinary [OChannelBinaryServer]
2016-05-14 16:27:25:314 INFO  /<IP_ADDRESS>:65317 - Reading boolean (1 byte)... [OChannelBinaryServer]
2016-05-14 16:27:25:315 INFO  /<IP_ADDRESS>:65317 - Read boolean: true [OChannelBinaryServer]
2016-05-14 16:27:25:315 INFO  /<IP_ADDRESS>:65317 - Reading boolean (1 byte)... [OChannelBinaryServer]
2016-05-14 16:27:25:316 INFO  /<IP_ADDRESS>:65317 - Read boolean: true [OChannelBinaryServer]
2016-05-14 16:27:25:317 INFO  /<IP_ADDRESS>:65317 - Reading boolean (1 byte)... [OChannelBinaryServer]
2016-05-14 16:27:25:317 INFO  /<IP_ADDRESS>:65317 - Read boolean: true [OChannelBinaryServer]
2016-05-14 16:27:25:318 INFO  /<IP_ADDRESS>:65317 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:27:25:319 INFO  /<IP_ADDRESS>:65317 - Read string: test_tr [OChannelBinaryServer]
2016-05-14 16:27:25:319 INFO  /<IP_ADDRESS>:65317 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:27:25:320 INFO  /<IP_ADDRESS>:65317 - Read string: admin [OChannelBinaryServer]
2016-05-14 16:27:25:320 INFO  /<IP_ADDRESS>:65317 - Reading string (4+N bytes)... [OChannelBinaryServer]
2016-05-14 16:27:25:321 INFO  /<IP_ADDRESS>:65317 - Read string: admin [OChannelBinaryServer]

I some of my attempts i tried to configure the driver to communicate showing himself as protocol 36, but the header response in the procol is changed, so no responses can be read by the client.
The protocol is obviously changed.
So, i configured the driver to connect showing himself as protocol 33.
I suppose that the server worked in some backward compatibility.
The connect/drop/create messages worked, but the open one is broken because it is different.
When the protocol changes in some manner, a communication to the maintainers must be sent with the changes and with the the new technical specifications and the online documentation updated accordingly.
I suppose all drivers will be broken with this new release.

hi @Ostico,
I update the documentation for the version 34, 35, 36. for the version 33 be aware that the main difference is that the DB_TYPE String has been removed, as reported here: http://orientdb.com/docs/last/Network-Binary-Protocol.html#version-33
in case try to use the version 32.
hope it help, in any case feel free to contact me direcly so we can speed up any troubleshooting.

I added the documentation for connect and create database.


There no docs related to css

Please give some examples on the shadows u put on your example

explain how u put this shadows

@Nodlik can you list a more complete example anywhere? I'm having a hard time getting the styling working too

Someone manage with css?