Fix android input focus in the search router component

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/51010
PROPOSAL: https://github.com/Expensify/App/issues/51010#issuecomment-2419429623
Tests

[X] Verify that no errors appear in the JS console

Launch New Expensify app.
Open a report.
Tap Search icon.
validate that the search input text is focused and the keyboard shows up automtically

Offline tests

Same as tests
QA Steps

Same as tests
PR Author Checklist

[X] I linked the correct issue in the ### Fixed Issues section above
[X] I wrote clear testing steps that cover the changes made in this PR

[X] I added steps for local testing in the Tests section
[X] I added steps for the expected offline behavior in the Offline steps section
[X] I added steps for Staging and/or Production testing in the QA steps section
[X] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[X] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[X] I included screenshots or videos for tests on all platforms
[X] I ran the tests on all platforms & verified they passed on:

[X] Android: Native
[X] Android: mWeb Chrome
[X] iOS: Native
[X] iOS: mWeb Safari
[X] MacOS: Chrome / Safari
[X] MacOS: Desktop

[X] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[X] I followed proper code patterns (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[X] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[X] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I followed the guidelines as stated in the Review Guidelines
[X] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] I verified that if a function's arguments changed that all usages have also been updated correctly
[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[X] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[X] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[X] I verified that all the inputs inside a form are aligned with each other.
[X] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/cb71f11f-0f4b-40b9-85a2-a2ac15ddc829

Android: mWeb Chrome

https://github.com/user-attachments/assets/a55c4e9b-8f93-42bd-a2c5-5bb65652bf40

iOS: Native

https://github.com/user-attachments/assets/8749e38f-71d3-4ea6-8f67-86a68b54ea63

iOS: mWeb Safari

https://github.com/user-attachments/assets/9d484e9e-16bc-4376-abd5-078b5d3b0c66

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/2f664a66-3df8-49d0-b75a-0d62109309ab

MacOS: Desktop

https://github.com/user-attachments/assets/b1260286-0e7b-4e14-bf64-fa36dcd68d2b

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

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

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/2d02810f-34b9-41df-9f52-347ba323d482

Android: mWeb Chrome
https://github.com/user-attachments/assets/22af4d5b-7b43-43af-8cd3-b27b7193d449

iOS: Native
https://github.com/user-attachments/assets/8076763b-47e4-4235-b5f4-507be3353d40

iOS: mWeb Safari
https://github.com/user-attachments/assets/0cdd5152-1ce5-458b-a2cb-f84ec2b02dba

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/e71ecca8-1c28-4590-862b-072c69ade15d

MacOS: Desktop
https://github.com/user-attachments/assets/63c41034-4308-4f8f-8e53-ccd2bf7e41ab

@luacmartins @srikarparsi Keyboard isn't opening in iOS mobile Safari, and I think that's a known issue since it's not working in many places at the moment. Otherwise, the changes look good, and other platforms are working well.

Keyboard isn't opening in iOS mobile Safari

hmm the current staging build seems to open the keyboard on my physical device

perf tests are failing 😞

is this happening on specific ios versions or devices?

iphone SE(3rd gen) , 17.5 version

Let me test it on a few other simulators

Tested with two simulators, and I'm seeing the same issue on my side—the keyboard hides. However, when I use the main branch, the keyboard opens. It looks like we're breaking mobile Safari with these changes.

Strange simulator behavior. Should we test with an ad-hoc build here @luacmartins ?

Yeah I can trigger an ad-hoc build, but if it's working on main but not the branch for the same simulator might be a code problem.

Running adhoc build here

Let's test it as soon as the web build is done so we don't wait for iOS/android?

Yes 👍

@luacmartins @abzokhattab @srikarparsi Tested with the physical device and keyboard doesn't open for mweb safari 😞

https://github.com/Expensify/App/issues/10414

PR and staging comparison
https://github.com/user-attachments/assets/10772bda-b93b-487e-991f-66b41fdd3e2d

use shouldDelayFocus instead of the useAutoFocusInput and make it as false if the current platform is ios safari ?

What if we remove useAutoFocusInput and instead use autoFocus, passing shouldDelayFocus along with it? The value for shouldDelayFocus will come from src/libs/shouldDelayFocus/index.ts, and it will only delay on Android. What do you think?

But for now i will fix the current issue

Sounds like a good plan. We can start the Slack discussion about it, but for now, let's focus on this issue 😄

Also started another adhoc build in case we need it

Can you please check the mweb/safari sepecifcally from your side

Tested mweb and its working fine

Going to go ahead and merge so we can clear the deploy blocker

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

Hm, the iOS build failed on the AdHoc build and both the cherry pick builds. @jayeshmangwani and @abzokhattab were you able to test the latest changes on iOS?

@srikarparsi I've tested the iOS build locally, and it worked fine. I'm not sure how to test the staging iOS build.


infra: deprecation and cleanup plan

This is part 1 of an internal refactoring to provide a nicer and flexible API for users to use LLM
Note that these are mostly internal changes, and hopefully it shouldn't affect users too much.
Proposal
import openllm

llm = openllm.LLM('meta-llama/Llama-2-7b-hf-chat')

By default, llm.generate and llm.generate_iterator will be async functions. Users can use llm.sync_generate and llm.sync_generate_iterator to get the sync version.
# async def llm.generate(*args, **kwargs) -> openllm.GenerationOutput: ...
one_shot = await llm.generate("Hello World")

# async def llm.generate_iterator(*args, **kwargs) -> t.Iterator[openllm.GenerationOutput]: ...
async for generated in llm.generate_iterator("Hello World"): print(generated)

For using with BentoML service code, one can do the following:

import openllm

llm = openllm.LLM('meta-llama/Llama-2-7b-hf-chat')
svc = bentoml.Service('chat', runners=[llm.runner])

@svc.api(input=bentoml.io.Text(), output=bentoml.io.JSON())
def chat(text): return llm.generate(text)

[!IMPORTANT]
openllm.LLM will now hold a reference to the model and tokenizer, and model will be loaded once when inference is called

[!IMPORTANT]
The model will now be its own runner,  which will be managed internally by openllm.LLM. Tokenizer will become embedded runners

Therefore, openllm.Runner is now deprecated, and will be removed in the future.
I will try not to make breaking changes to openllm.Runner.
API Deprecation
We will also deprecate Flax and TF backend support, and only support vLLM and PyTorch for the time being.
The reason being that we want to focus on providing a good API for users to use LLM, and we don't have the bandwidth to support 4 backends, as the matrix grows big quickly.
We will also now fully focus on supporting a few targeted model architectures (Llama-2, Mistral (wip), ChatGLM), and will kindly move all of the remaining architecture to best-effort support.
TODO

[ ] Remove Auto classes abstraction
[ ] Cleanup  openllm.LLM API, and expose the class
[ ] Update redirection of openllm.Runner to use openllm.LLM logic

This is now merged and finished.


Any Example for sklearn-pmml?

I can't find any example or demo for the usage of this package. Can we provide some sample code?

Any update on this? Would definitely appreciate some sample code. Thanks!

I strongly recommend using sklearn2pmml by the JPMML team - it has a very detailed documentation and is super easy to use. Plus, they promise the full compatibility with jpmml-evaluator, which proved to be the best library to process PMML in Java at the moment.


Viewers properties: column choosing dropdown is positioned so that some columns are hidden in some cases

Steps to reproduce:

Open a table with large number of columns, e.g. SPGI
Add a viewer that allows to choose columns, e.g. for axes (Scatter plot, histogram)
Open properties panel
Scroll properties panel
Open column choosing dropdown (e.g. for scatter plot Y axis)

Expected results: Position of the column chooser should not depend on how properties panel is scrolled.
Actual results: Column chooser is moved up together with properties panel contents on scrolling, hiding some of the topmost columns:

Issue was already present in 1.9.2, but did not cause much trouble because most column selections were at the top of properties panel.
In 1.11.1 issue is much more noticeable because of properties panel re-arrangement.

Fixed in v.1.12.0


bad shapely bad... (i mean bad us for not getting to these future war…

Shapely version 2.0.0 was giving me errors:
FAILED test/unit/analysis/spatial_test.py::test_check_gdf[gdf5-ValueError-MultiPolygon contains Polygon geometries with zero area] - TypeError: 'MultiPolygon' object is not iterable
FAILED test/unit/analysis/spatial_test.py::test_polygonize - TypeError: 'GeometryCollection' object is not iterable
FAILED test/unit/analysis/spatial_test.py::test_explode - TypeError: 'MultiPolygon' object is not iterable

so I PINNED 📌

It was a quick fix (thankfully) to actually become compatible with Shapely 2.0, so I have merged those changes instead.


Memory Estimation Fix and More

Bug Fixes

Added fix to "auto" job_memory
Added additional colors for bar plots (needed for Face Differentiation analysis)

Chores

Added initialize function to job to reduce number of variables that need to be passed between functions, centralizing job information into the job objects themselves
Simplified brain.train and brain.test params to use job object
Moved all callback-related code into callbacks.py
Moved central logic into NETT.run, modularizing the code into their respective pieces

DUDE! This make everything so much more readable. I won't have a chance to test anything on the server until after my 8pm class, but what a huge step. Thank you!


Showcase card themes

Although showcasing yourself on the contributors page is great since you can tell us something about yourself, we could make it even more customizable.
The idea would be card themes!

What are card themes?

Card themes are classes you can assign to the main div of your presentation which would add a neat look to an individual card.

How would it look like?

An example would be that the class "nature-card" would change the cards background image to something nature-ish or the color of it, or add a "nature-like" border around it, maybe even animations since we now have Lottie Animations for the site!

Additional information:

The themes should not be too complex, since we want everything to run nice and smooth and not disturb the visitor too much so the main point of the website doesn't get lost. It would also be great if we could make a template theme, in case that someone would like to make their own theme they would just copy the template and edit it a bit along with the class selector.

hi , please assign the issue to me

hi , please assign the issue to me

Hi @JASKIRAT11011 ! Technically everyone is assigned to all Issues since it is a community effort :)
Just simply create a fork and pull request your features and mention the issue number!


TextMate scope selectors: scope exclusion is not implemented

VSCode Version: Code 1.15.1 (41abd21afdf7424c89319ee7cb0445cc6f376959, 2017-08-16T18:07:25.676Z)
OS Version: Windows_NT x64 6.1.7601
Extensions:

Extension
Author (truncated)
Version

intellij-idea-keybindings
k--
0.2.13

selectline-statusbar
tom
0.0.2

Also the same result with today's VS Code Insiders build.

According to the documentation for TextMate scope selectors, VSCode supports the syntax for excluding matching scopes:

entity.name.method - source.java matches all scopes that start with entity.name.method but not if a parent scope matches source.java

This functionality is used in at least one built-in theme that I could find:
https://github.com/Microsoft/vscode/blob/c00bdb74ee665cccfc5c4e41520893bb19ef61e5/extensions/theme-monokai/themes/monokai-color-theme.json#L316
But it seems that this syntax makes the selector with - in it invalid, and VSCode doesn't apply the given rule to anything at all.
Steps to Reproduce:

Put this rule for syntax highlighting in the settings. Confirm that comments turn yellow at least in some files.

{
    "editor.tokenColorCustomizations": {
        "textMateRules": [
            {
                "scope": "comment",
                "settings": {
                    "foreground": "#FFFF00"
                }
            }
        ]
    }
}

Change the line with the scope selector to:
"scope": "comment - source.js",
Expected result: comments that changed their color after step 1 remain yellow in all files except in .js.
Actual result: all comments reset to a color defined by the current theme.

Reproduces without extensions: Yes

This issue was moved to Microsoft/vscode-textmate#52


TTFAutohint 'name' table details

It is critically important that all TTFs in the API have their TTFAutohint args in the 'name' table, so that an automated solution can be made to replicate the hinting on subsets, etc.
FB must therefore have a FAILing check for this (likely coded similar to the copyright notice check) and this is a high priority thing for the @graphicore dashboard to track across the publication flow for all families.

Sure! I'll do it :-D
(I agree this is very important stuff)

Is that a feature request, to highlight/track specific check results?

I think it is just a feature request for a new check. But it might be a feature request for highlighting specific resuts if you decide to fill an issue at https://github.com/googlefonts/fontbakery-dashboard ;-)
By the way, we do have a sketch of a metadata schema for check "priorities". But we never really tagged a significant amount of checks with these specific metadata fields.

By the way, we do have a sketch of a metadata schema for check "priorities". But we never really tagged a significant amount of checks with these specific metadata fields.

Yeah, and we don't use it all. If we decide to use it e.g. for this kind of thing, we may end up putting priorities on general checks that who are ours, but not those of other users ...
In this case, the check is of course google fonts specific and the clash of priority preferences is far away of becoming real.

I do not wish to over-complicate things here, but I acknowledge that priority-sorting seems like a user-specific setting rather than an absolute truth that is valid for everyone...

Our current implementation of check/056 does already detect when ttfautohint versioning is lacking on the name table entries. But it emits an INFO:

We can make it a FAIL.

And explicitly state why in the FAIL message.

The current check only tries to parse ttfautohint version info, but not the args:
installed_ttfa = re.search(r'ttfautohint ([^-\n]*)(-.*)?\n',
                             ttfa_output).group(1)

We probably would want to parse the args as well.

That's the current state of the collection, regarding availability of the ttfautohint params on version strings of the name table:


Add video to assets for video testing 🎥

i've been slowly but surely working on adding tests for video, a first pass of which is in this pr
not sure if there's a better place for this to live but all the existing tests point to assets on the website so figured i'd start here.

Thanks for this @brondle! Would it work better if we just used a very short clip? And reduced the filesize to 1 MB or less? I'm fine with this living on the website, @joeyklee what do you think?


Version 3.3 Active directory groups do not work.

Hi,
I can succesfully Login via AD User. I created a Team: DOMAIN\Group and a Project including the Team. But the project is not shown to the AD User although he is in the Group. I currently use Bonobo 3.3 on Windows Server 2012 R2
Thanks for your Support!

Thanks that was the problem.


Abstract Properties

This is a proposal to extend #3578 to allow abstract properties in abstract classes. So the following should be legal:
abstract class A {
  abstract p;
}
class B extends A {
  get p() {...}
  set p(v) {...}
}

+1
Also abstract getters should be full-fillable by properties:
abstract class A {
  abstract get p();
}
class B extends A {
  p;
}

This is a pretty common pattern in Dart when the abstract class just need some values by it's implementers.

+1 angular has been wishing for this as well:
https://github.com/angular/angular/blob/a88e6f31063ac3abb439f93cbbc3a46c065f7614/modules/angular2/src/core/compiler/element_ref.ts#L60
cc @tbosch

declaring the property as abstract does not change anything different from just declaring it. the type is going to always have the property.
As for getters and setters., the type system does not differentiate between getter/setter and a property declaration.

@mhegazy Actually, there is an important difference. Using an abstract property I could specify that the property must be specialized (usually with getters and/or setters) in a derived class, and the compiler should rise an error if it's not specialized.
Please reconsider closing this proposal.

@mhegazy I totally agree with @denvned about enforcing getter declaration in child classes.

This allows some child classes to simply ignore some important properties in my contract.
Please reopen this for further discussion...

+1
Especially as lambda/arrow functions are actually properties as I found out when I was trying to implement the following functionality but it wouldn't compile due to....
"Class 'Base' defines instance member function 'def', but extended class 'Concrete' defines it as instance member property"...
abstract class Base {
    abstract abc(): void;
    abstract def(): void;
}

class Concrete extends Base {
    private setting: boolean;

    public abc(): void  {
        this.setting = true;
    }

    public def = (): void => {
        this.setting = false;
    }
}

Please reopen for discussion!
Here is a simple example describing the problem:
abstract class Foo {
	abstract getName(); //works like a charm
	abstract setName();

	/* but it's better to use properties:
	abstract get name;
	abstract set name;
	*/

	/* I can define properties */
	private _name = '';
	get name() {
		return this._name;
	}
	set name(value) {
		this.name = value;
	}
	/* but cannot force Bar class to implement them */
}

class Bar extends Foo {
	//complains only about getName and setName
}

Compiler complains about undefined getName and setName but I can't define property contract.
But hey, JS and TS both support getters/setters - why should I use Java-style methods instead of properties?

+1
I agree, this is needed!
I just ran into this. Using abstract getters/setters actually can be done if you ignore this error:
error TS1242: 'abstract' modifier can only appear on a class or method declaration.
but would be nice if the compiler checked whether the property was implemented in subclasses.

+1
Lack of abstract getters/setters is an oversight imo

@raveclassic I'm interested in your request but I don't yet understand why the class inheriting from the abstract class needs it's implementation an attribute to be enforced using getters and setters.  Should it now be the responsibility of the child class how it implements an attribute?  In your example, what is missing with:
abstract class Foo {
    name: string;
}

class Bar extends Foo {
    get name() {return "..."};
    set name(v) {"..."};
}

If someone implements another class without specifying the attribute at all, or by redeclaring it as a normal attribute; in all three class (that inherit from the abstract class) they have a valid and functioning name attribute.  What is missing?  And if the answer is: "Anyone inheriting from this particular abstract class should be forced to implement getters and setters", then the following questions is "Why should anyone inheriting from this particular abstract class should be forced to implement getters and setters?":
class Baz extends Foo {}
class Fizz extends Foo {
    name: string;
}

(I unfortunately haven't yet grasped with @craigbroadman is referring to but) perhaps @vagaroso, @tehsenaus, @sirudog or @denvned could also help illuminate what's missing from the examples I have shown in my previous comment please?

@AJamesPhillips The main reason in using abstract getters is that if I leave name attribute uninitialized in Foo class, I'll get undefined when accessing the value and possible runtime errors related to this. I want all access-related issues to be tracked by compiler.
I beleive I should provide a bit more concrete example:
export enum DataEventType {
	TRADE,
	INSTRUMENT,
	QUOTE,
	SUMMARY
}

export type DataTO = TradeTO | QuoteTO | SummaryTO | ChartInstrumentTO;

export abstract class DataEvent {
	protected _instrument:Instrument;
	protected _data:DataTO;

	get instrument():Instrument {
		return this._instrument;
	}

	get type():DataEventType {
		return this.getType();
	}

	/**
	 * todo: make abstract when typescript supports abstract getters
	 */
	get data():DataTO {
		return this._data;
	}

	constructor(data:DataTO) {
		this._data = data;
		this._instrument = this.createInstrument(data);
	}

	protected abstract getType():DataEventType;

	protected abstract createInstrument(data:DataTO):Instrument;
}

export class TradeDataEvent extends DataEvent {
	get data():TradeTO {
		return this._data as TradeTO;
	}

	protected getType() {
		return DataEventType.TRADE;
	}

	protected createInstrument(data:TradeTO):Instrument {
		return Instrument.fromString(data.symbol);
	}
}

export class QuoteDataEvent extends DataEvent {
	get data():QuoteTO {
		return this._data as QuoteTO;
	}

	protected getType() {
		return DataEventType.QUOTE;
	}

	protected createInstrument(data:QuoteTO):Instrument {
		return Instrument.fromString(data.symbol);
	}
}

In the example above I need all inherited DataEvents (TradeDataEvent, QuoteDataEvent) to be forced to strictly specify the return type of data field. The same is applicable to getType, with the only difference that here it is implemented as a method, but it realy seems that it would be much more preferable to just use an abstract get type().

Hey @raveclassic thanks for the clarification.  I tried to reduce the example to highlight the essence of what you wanted to achieve so let me know if I've missed a crucial requirement / component.  As you can see you're opening yourself up to errors using the casting:
class DataTO {};
class TradeTO extends DataTO {
  tradeComplete(): boolean {return true};
};
class QuoteTO extends DataTO {
  quoteNum(): number {return 4};
};

abstract class DataEvent {
    protected _data: DataTO;

    /**
     * todo: make abstract when typescript supports abstract getters
     */
    get data(): DataTO {
        return this._data;
    }

    constructor(data: DataTO) {
        this._data = data;
    }
}

class TradeDataEvent extends DataEvent {
    get data(): TradeTO {
        return this._data as TradeTO;  // avoid casting if possible
    }
}

class QuoteDataEvent extends DataEvent {
    get data(): QuoteTO {
        return this._data as QuoteTO;  // avoid casting if possible
    }
}

var c = new QuoteDataEvent(new TradeTO());
console.log(c.data.quoteNum());  // run time error

I guessed at what you're trying to achieve, again correct me if I'm wrong, but I think a better pattern for this would be the following.  Whilst I was trying to produce this I did think at one point that abstract setter or getter would again be useful, in this example because the setter does something each time with the DataTO value, but as you can see generics are the way forward!
class DataTO {
	revenue: number;
};
class TradeTO extends DataTO {
	tradeComplete(): boolean {return true};
};
class QuoteTO extends DataTO {
	quoteNum(): number {return 4};
};

abstract class DataEvent<T extends DataTO> {
	private _data: T;
	get data(): T { return this._data};
	set data(v: T) {
		// do something with v each time and in all subclasses
		v.revenue += 0;
		this._data = v;
	};

	constructor(data: T) {
		this.data = data;
	}
}

class TradeDataEvent extends DataEvent<TradeTO> {}

class QuoteDataEvent extends DataEvent<QuoteTO> {}

var c = new QuoteDataEvent(new TradeTO());  // compile time error
var d = new TradeDataEvent(new TradeTO());
console.log(d.data.quoteNum());  // compile time error

Hope that helps.

@AJamesPhillips Interesting, somehow I forgot about extending generics in class declaration.. =)
Yes, your example perfectly fits even if DataTOs are interfaces.
Thanks a lot!
To be honest, I can't image the situation when abstract properties are still needed for now and don't have any reasonable arguments in favor as your solution works, but couldn't it still be possible?

@AJamesPhillips
Isn't the whole point of abstract to force an implementation of some kind? Of course it's up to the subclass to decide how to implement; abstract properties don't preclude this. Example:
abstract class Base {
    abstract x: string;
}
class A extends Base {
    x: string;
}
class B extends Base {
    get x(): string {
        ...
    }
}
class C extends Base {
    // Error
}

The issue is at the moment there is no way to express that a property must be implemented in some way by a subclass. I'm forced to do things like this:
abstract class Base {
    get x(): string {
        throw "x: not implemented!";
    }
}

Yuck!

Yes @tehsenaus and I don't have any answer to that.
Do you have a concrete example we could look at?  One where you are prefably exporting an abstract base class that you want the software engineer using that class to know at compile time that they need to give an x property?  And that the abstract class having the following is not good enough and if so why:
abstract class Base {
    x: string;
}

Why should the abstract class enforce on its descendants the necessity to define a property when it could just do the following  (sorry tone of this sounds a bit aggressive... Not meant to be I assure you :) )

I can't give a concrete example without sharing proprietary source... but let's say I'm implementing the 'template method pattern', where the abstract class needs to read a property from a subclass. I could use a getter method... but why? This isn't Java!

No obviously that's fine @tehsenaus, good example though... and what is undesirable about specifying the property in the abstract base (sorry if I'm being stupid and have just missed the point of 'template method pattern').

@AJamesPhillips Template method means that a subclass has to implement a method that is used in abstract class (for example in base render method) and it is assumed that this method cannot return any default value for being abstract. If it could, then just specifying this default value in abstract base would be enough.
The point here in favor of abstract properties (and I mentioned it earlier) that it is not Java and devs should not be forced to write Java-style methods to access a simple value. I don't need pairs of getValue/setValue per each field. Moreover, everything related to runtime checks, exception throwing is undesired - we have static checking for that.
Also, what do you think about instance-bound handlers which are described in my previous message update? It seems like I've updated it too late and you haven't noticed that. =)

Yes @raveclassic I did respond as soon as I was notified :)  Re "instance-bound handlers" I don't understand why the abstract class Popup requires its subclasses to return void from onClose when it needs to return an object (i.e. hash / dictionary)?
Re: "template method",

a subclass has to implement a method that is used in abstract class
That's correct, but we're referring to attributes.  As mhegazy said earlier:
declaring the property as abstract does not change anything different from just declaring it. the type is going to always have the property.
As for getters and setters., the type system does not differentiate between getter/setter and a property declaration.

@AJamesPhillips
Re: "instance-bound handlers":
This is not about types at all but about enforcing implementation in subclasses, void is just an example and a common return type of a typical event handler. The point here is that to preserve instance context a handler should be defined as a bound function (with that fat arrow) - but then it cannot be marked as abstract. I mean that "every particular subclass of popup has to implement an onClose callback" (just an example).
Re: "template method"
Again, this is not about types. I mentioned methods just as an example, and what's more methods can be marked as abstract just now - but here's the other question about the need of using Java-style when this template method can be a string property for example. But each subslass has to define it.
Thanks for your time and patience! =)

@AJamesPhillips: to answer "what is undesirable about specifying the property in the abstract base?":
It's undesirable as it doesn't force an implementation in the subclass. It's essentially equivalent to this, if we were using getters:
abstract class Base {
     getX(): string { return void 0; }
}

You would never write this, right? You'd want the compiler to do its job and enforce an implementation.

@raveclassic no problem :)  re: onClose yeah I read that wrong.  Apologies.  I can see how it's partially relevant to "Abstract Properties" but this probably belongs in it's own issue... I'm not sure how others solve it and I would be interested to know but you can solve it with this:
interface EventHandler {
	(): void;
}

abstract class Popup {
	onClose: EventHandler;
	abstract defineOnClose(): EventHandler;
	constructor() {
		this.onClose = this.defineOnClose().bind(this);
	}
}

class CustomPopup extends Popup {  // Correct compile time error
}

@tehsenaus Sorry I don't understand.  I agree that:

an abstract class should enforce its subclasses to implement abstract methods.
I also think that:
an abstract class declaring any property should not enforce a subclass to implement a get or set method as what implementation is required?
Again even a partially concrete use case would be useful to understand what problem you are trying to solve and how you think abstract properties would help.  Is it that you want the abstract class to force the subclass to initialise the property?  Or provide some particular functionality?  Or something else?

Dart have abstract properties and uses them quite a lot in the standard library in a very nice way.
For example List which is an abstract class and have abstract getters for things like length, reversed and similar things that classes implementing a List need to implement.
https://github.com/dart-lang/sdk/blob/master/sdk/lib/core/list.dart
I can't see how a language that have getters and setters can justify abstract methods but not abstract properties. They are the same thing just with a nicer syntax. If you don't think abstract properties are needed you should think that abstract methods are equally needless.

@Pajn I don't follow that chain of logic.  Abstract methods are valuable, they force subclasses to implement them.  In a comment 5 hours before yours and 2 above it I have used an abstract method.
Thanks for the link to the dart library.  So is it only a case for brevity?  i.e. it would allow you to condense this:
abstract class List {
	get length(): number { return this.getLength(); };
	set length(length: number) { this.setLength(length); };
	protected abstract getLength(): number;
	protected abstract setLength(length: number);
}

class SubList extends List {
	private _length: number;
	protected getLength() { return this._length; }
	protected setLength(length: number) { this._length = length; }
}

class HalfSubList extends List {
	private _length: number;
	protected getLength() { return this._length/2; }
	protected setLength(length: number) { this._length = length; }
}

To this:
abstract class List {
	abstract length: number;
}

class SubList extends List {
	length: number;
}

class HalfSubList extends List {
	private _length: number;
	get length() { return this._length/2; }
	set length(length: number) { this._length = length; }
}

Or is there a pattern in TypeScript that you just can't achieve without abstract properties?  I've tried creating one but failed so far.  I can see how it saves you several lines of code but personally I don't mind the Java like getters and setters, I'm primarily interested in patterns you just can't currently implement with TypeScript.

@AJamesPhillips

And of course abstract methods are valuable, they force subclasses to implement them.

Just as abstract properties forces subclasses to implement them. They are the same thing.

So is it only a case for brevity?

Mostly, however I would argue that it's about intention as well. A property should never have a side effect, methods might. Mixing Java style getters with good getters makes the code more confusing.

Or is there a pattern in TypeScript that you just can't achieve without abstract properties?

We could probably think of some strange edge case where some library expect a good getter but I would say no. You can manage just fine without them. But you can manage just fine without abstract methods as well by having an abstract class implement an interface. But that doesn't mean that it's the clearest way to express yourself.
I would totally understand declining abstract properties if there were no abstract methods but when you already have the concept of abstract things I can't understand why not all methods can be abstract. It makes the language harder to learn and understand when you have to remember all special cases for different kinds of methods.

Is this going to be reopened? I think we've made a strong case for abstract properties.

Use cases keep piling up indeed. At a hesistant 'yes' but we'll take this to the next design meeting for wider discussion.

If we get this, the use-case for https://github.com/Microsoft/TypeScript/issues/4670 could be solved in a clean way as we would be able to redirect the responsibility to fulfill the interface by declaring all parts of the contract (both properties and methods) as abstract and to be implemented by the derived class:
interface A
{
    p;
    m();
}

abstract class B implements A
{
    abstract p;
    abstract m();
}

class C extends B
{
    get p() {return null};
    set p(v) {};
    m() {}
}

Some extra typing compared to the original request, but that could at the same time be seen as increased clarity of intention.
Otherwise I don't know how to cleanly achieve derived classes that have a common abstract class with common behavior and at the same time enforce that the derived classes have certain properties without having unity types everywhere (which feels more like a hack for this scenario anyway).
As I see it, the general concept of the "abstract class" is basically a subclass of an "interface" with the addition of the possibility of having some members implemented. So it would make total sense if "abstract class" indeed is a superset of an interface, which it can not be unless the abstract class can do all the things an interface can do. Just like you can do in C#
interface A
{
    string P { get; set; }
    void M();
}

abstract class B : A
{
    public abstract string P { get; set; }
    public abstract void M();
}

class C : B
{
    public override string P { get; set; }
    public override void M()
    {
        throw new NotImplementedException();
    }
}

@mhegazy hand this one off?

PRs are welcomed also.

Note, the conclusion form the design discussion was abstract readonly p: number was the desired order of modifiers.

#7184 allows for abstract properties (and accessors). There's not much to the change because the machinery is the same as for abstract methods.

Awesome :+1:
Which version is this landing in?

It should already be in typescript@next.


Allow X-Flow-ID header to be specified by application.

Addresses #193. If it is left unspecified, the current behaviour (of generating a new flow ID) is maintained. I chose to with the simpler implementation as it better matches the existing code IMO.

Looks like what's here will work. One question, will the flow id be changed on each request?

At least in our use case, yeah (well, we never change it, but we get a fresh EventResource for each send call).

Going to merge, but might follow up with a patch to check recycling of the flow id. In Zalando's systems at least, it's bad if they get recycled.


Add support for elevenlabs tts

https://docs.elevenlabs.io/api-reference/text-to-speech
also, note we have a custom speech example you can reference.

merged


Merge AST extractor an source extractor

Both extract javadoc from an AST node, so source extraction should just be a fallback step from AST extraction.
Refactor separate steps into services, which can be injected (SPI mechanism)

This is actually not necessary. Since the source-extractor runs in an earlier compilation phase, when the AST extractor is used, the javadoc will already be placed in an annotation.
Still the naming should be improved.


[MM-49715] Work templates: add content

Summary
Add all the necessary pictures.
Ticket Link
https://mattermost.atlassian.net/browse/MM-49715
Related Pull Requests

Has server changes (todo)

Screenshots

Release Note

NONE

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.


Build failure: frozen-bubble

Steps To Reproduce
Steps to reproduce the behavior:

build frozen-bubble

Build log
https://gist.github.com/Jayman2000/392f9c071b5b708c044e52b4619ee99b
Additional context
frozen-bubble works fine on NixOS 23.05. It’s just NixOS Unstable that’s affected.
Notify maintainers

@puckipedia
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.52, NixOS, 23.11 (Tapir), 23.11pre525725.f2ea252d23eb`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.17.0`
 - channels(root): `"nixos"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Looks like caused by Perl; probably requires a cherrypick of https://github.com/PerlGameDev/SDL/pull/304


running the sample app as a windows service using NSSM

The sample to receive a message works great when calling node from the command line.
Would you know why it would not work when trying to turn it into a windows service (am using NSSM)?
I don't get any errors to trace what could be going wrong:
http://stackoverflow.com/questions/43033778/using-nssm-to-create-a-node-script-cant-be-started

any thoughts?


Running with EAC

it possible to run pacther without EAC disabling?
I understand risks, and on 1.02 i used fix ultrawide/vignette and animations by hex without blocking

Hi, I'm not planning to support this but you can try following these steps:

Open er-patcher in a text editor and change the last two lines to

    # os.remove(patched_exe_dir / exe_name)
    # os.rmdir(patched_exe_dir)

Set the launch options you want to run the game with (assuming everything works) and start it from steam once (we expect it to crash here)
rename the original eldenring.exe to eldenring.exe.bak
move the patched ./er-patcher-tmp/eldenring.exe to the main game directory
remove all Elden Ring launch options in steam
start the game from steam

That works. Thanks

Hey there, we have added a new flag that allows enabling EAC so I'll be closing this issue ;)


CL with UTF-8

There seems do be a problem, if I want create a invoice with UTF-8 symbols in combination with c-lightning.
lightningd 'invoice' failed with '{'code': -32602, 'message': 'description: should be a string (without \\u): invalid token \'"\\u03c1\\u03b1\\u03b7\\u2202\\u03b1 \\u25d5\\u203f\\u25d5"\''}'.

If I use the same string over RTL its work perfectly.
EDIT: OK, this is a problem with the lightningd lib:
https://github.com/ElementsProject/lightning/pull/3018

seems to be long resolved :)


Got error 'bpf.vlanBypass: Invalid type. Expected: [null,array], given: integer' when running 'E2E_IP_FAMILY=ipv4 make setup_dualCni_cilium'

Spiderpool Version
latest
Bug Type
Installation Issue
Main CNI
cilium
What happened?
Got error 'bpf.vlanBypass: Invalid type. Expected: [null,array], given: integer' when running 'E2E_IP_FAMILY=ipv4 make setup_dualCni_cilium'
What did you expect to happen?
Should be ok.
How to reproduce it (as minimally and precisely as possible)
Got error 'bpf.vlanBypass: Invalid type. Expected: [null,array], given: integer' when running 'E2E_IP_FAMILY=ipv4 make setup_dualCni_cilium'
Fixed via --set bpf.vlanBypass={0} instead of --set bpf.vlanBypass=0  in the source code.
Additional Context
No response

Thank you for your feedback.
Spiderpool has been using the latest version of cilium to deploy tests, but cilium released a new version last week, which changed the fields kubeProxyReplacement and bpf.vlanBypass, resulting in execution failure.
The problem has been fixed, but make setup_dualCni_cilium is based on a stable version, and no new stable version has been released at this stage, so it will still fail.

https://github.com/spidernet-io/spiderpool/pull/3762/files


nixos/nix-daemon: default nix.useSandbox to true.

Motivation for this change
After some discussions on IRC we thought that enabling sanboxing per default might be a good idea. The initial concern was the comment about a performance penalty when using sandboxing. The penalty is supposedly only significant during the startup of build. IMHO the gained level of security does warrant the extra bit of slowness.
Please leave you opinions here.
There was a recent rephrasing of the description of said option with f098e60ecfe9f2d7b1d51a58e00a09656099b342. It would be great to know if that also originated from thoughts of enabling it. (CC @LnL7 @bbarker)
CC those people involved in the discussion on IRC: @manveru @cleverca22
CC some of the people that might know more about the impact: @edolstra @LnL7 @grahamc

Would be really nice if this could make it into 18.09.

Judging by the amount of :+1: reactions to the initial post there seems to be a broad base of support for this. I did read through the other issue and I can not come up with a reason why someone knowledgeable wouldn't just turn it off if it really bothers them...

iirc the reason it was disabled by default for nixos in particular is that nixos involves many trivial builds (unit files and such), where the startup cost can increase the build time by a significant factor. Still I'm fully :+1: on this change!


MongoDb storage for openchain server

Here is an additionnal storage backend using mongodb for records, transactions and anchorstates.
It uses 3 mongodb collections :

records : records key, value & version, with denormalized path, type, name
transactions : transactions, mutations and affected records keys
anchorstates : ledger anchors

Needed indexes are dynamically created on startup.
I had to force execution environment to dnx451 because dotnetcore is not yet supported for mongodb driver.

Thanks a lot @fluce for writing this code.
I reviewed it and have a few comments:

The main blocking issue is the lack of ACID semantics for MongoDB: In MongoDbStorageEngine.AddTransactions, it's possible for the Record collection to be updated without the Transaction collection being updated if something fails in between both updates. This will break the assumptions required by Openchain.
There should be unit tests. In particular the BaseStorageEngineTests and BaseLedgerTests test classes contain tests that any storage engine should pass.
User secrets are already handled by the AddUserSecrets call. On Windows, the file should be stored in Users\Flavien\AppData\Roaming\Microsoft\UserSecrets\Openchain.Server\secrets.json. The API is cross platform and will store secrets encrypted in the future.

I think it would be better to create a separate dedicated repository under the Openchain organization (like https://github.com/Openchain/openchain-mongodb) and give you push rights on it. The idea behind the component model introduced recently is that end-users can pull a third-party storage engine through NuGet by modifying the dependencies in project.json, then dnu restore. In your repository, you can simply reference the core Openchain packages through NuGet. Does that work for you?

@Flavien,
I added a record write lock and a pending transaction collection to deal with most of ACID concerns.
Records affected by a transaction are locked using transaction hash, current values are recorded in a pending transaction collection.
After records are updated and transaction is inserted, locks and pending transaction are removed.
If an exception occured, data stored in the pending transaction are used to reset the records to their previous states.
If the thread (or process) is interrupted (without exception), a worker thread deals with the orphaned transaction and rolls it back.
When reading records, lock presence is tested and the read spins until the lock is removed or a timeout occurred.
Next to do :

Test locks for other kinds read accesses
Filter transactions in GetLastTransaction and GetTransactions to stop enumerating transaction if a pending transaction is found

Concerning unit tests, I will add minimal tests but they won't be self contained and will need a mongodb instance.
I knew the user secrets feature, but I choose the simplest way, partly because I use the secret file more as a 'local' settings store than as a 'secret' one. I will look into it deeper.
I think it's a good idea to isolate the mongodb storage provider in it's own repository. But for this to work I will need the dependency resolver patch to be merged, or any other way to support a net451 only provider. Let me know if it's possible.

Hi @fluce,
That sounds good.
An option I was thinking about to avoid having to use a background worker is to use the following steps when a transaction is submitted:

Cleanup any pending transaction (see below).
Insert the new transaction as pending.
Apply the changes to the Records collection.
Update the transaction as complete.

Then step 1 (Cleanup any pending transaction) would be:

Start at the first pending transaction.
Apply the changes to the Record collection.
Update the transaction as complete.
Move to the next transaction and return to 2 until there is no more pending transaction.

But I am sure there are edge conditions I am not thinking about.
I created the openchain/mongodb-storage repository to host the code you are writing, and you should have push rights on it.
Regarding the ability to use your package with Openchain, you can have a look at this. The project.json file will make sure the Openchain server package is pulled and run as the entry point.
You just need to add yours to the list of dependencies, and remove dnxcore50 from the list of frameworks to make sure dnx doesn't complain.

@Flavien,
I've just committed a first version of MongoDb-Storage provider.
I kept the background worker around for now. In practice, it should only works at startup to recover from a unexpected shutdown. I need to prepare a kind of load test to verify the whole commit system works well with a heavy activity.
I don't think the recovery process should try to complete the transaction, because the client application has received an error implying the transaction submission has gone wrong. So, the recovery process should rollback it properly. It's how the Sqlite provider works with the transaction scope.
I had a few problems to use my project and the other modules sources in a development environment: dnu restore still has a few mysteries for me... At a time the module compiles correctly in VS, but intellisense was completly lost and I had hundreds of errors in the editor...
How do you manage multiple repository/solution in your development setup ?
Fred

You should add the Openchain repository as a submodule to your repository, then reference the projects from the solution.
See how I did it on a fork of your repository: https://github.com/Flavien/mongodb-storage (feel free to merge my changes).
You might have some problems with the unit tests because right now, the XUnit unit tests runner only works with .NET Core.

Works well !
Even with unit tests, which runs correctly one I added dnx451 in project.json for Infrastructure.tests and Abstractions.tests. I also had to reimplement Task.FromException (not available with dnx451) in file  test/Openchain.Infrastructure.Tests/PollingObservableTests.cs (check https://github.com/fluce/openchain/commit/3afe7b17368aa51ba2d97a9a483731e7486d1ea2).
One question about something else : why don't you exclude project.lock.json from source control ? It's recalculated by dnu restore anyway, and it pollutes commits details (except of course if you set "locked"=true in the file, but it's not the case).

Glad to know it works.
I will make sure to target dnx452 in the unit tests projects (dnx452 has FromException).
Good point with the lock files. I think I will exclude them from source control.
I will now close this PR as it's no longer relevant, but to keep the discussion going, feel free to open an issue either on this repository or on mongodb-storage and tag me so I get a notification.

I've pushed those changes. You should be able to update the submodule, the unit test projects are now targetting dnx452.
Also, the lock files are now ignored.

Doesn't work


Hotplug doesn't work when loading nouveau after sway has started

If I open sway, then run sudo modprobe nouveau I get this:
00:00:16.013 [INFO] [wlr] [backend/drm/monitor.c:24] Received session_add_drm_card signal: /dev/dri/card1
00:00:16.014 [DEBUG] [wlr] [backend/drm/monitor.c:33] Opened /dev/dri/card1 as DRM device, fd = 65
00:00:16.014 [INFO] [wlr] [backend/drm/backend.c:170] Initializing DRM backend for /dev/dri/card1 (nouveau)
00:00:16.014 [DEBUG] [wlr] [backend/drm/drm.c:64] Atomic modesetting unsupported, using legacy DRM interface
00:00:16.014 [DEBUG] [wlr] [backend/drm/drm.c:77] WLR_DRM_NO_MODIFIERS set, disabling modifiers
00:00:16.014 [INFO] [wlr] [backend/drm/drm.c:243] Found 4 DRM CRTCs
00:00:16.014 [INFO] [wlr] [backend/drm/drm.c:170] Found 12 DRM planes
00:00:16.028 [INFO] [wlr] [render/egl.c:171] Supported EGL client extensions: EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
00:00:16.029 [INFO] [wlr] [render/egl.c:213] Using EGL 1.5
00:00:16.029 [INFO] [wlr] [render/egl.c:214] initialised EGL display
00:00:16.029 [INFO] [wlr] [render/egl.c:215] EGL vendor: Mesa Project
00:00:16.029 [INFO] [wlr] [render/egl.c:222] Supported EGL display extensions: EGL_ANDROID_blob_cache EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_WL_bind_wayland_display
00:00:16.029 [ERROR] [wlr] [EGL] command: eglQueryDisplayAttribEXT, error: EGL_BAD_DEVICE_EXT (0x322b), message: "eglQueryDeviceStringEXT"
00:00:16.029 [ERROR] [wlr] [render/egl.c:279] eglQueryDeviceStringEXT(EGL_EXTENSIONS) failed
00:00:16.029 [ERROR] [wlr] [EGL] command: eglMakeCurrent, error: EGL_BAD_DISPLAY (0x3008), message: "Invalid display (nil)"
00:00:16.029 [ERROR] [wlr] [render/wlr_renderer.c:263] Could not initialize EGL
00:00:16.029 [ERROR] [wlr] [backend/drm/renderer.c:33] Failed to create EGL/WLR renderer
00:00:16.062 [ERROR] [wlr] [backend/drm/backend.c:225] Failed to initialize renderer
00:00:16.063 [ERROR] [wlr] [backend/drm/monitor.c:42] Failed to create DRM backend after hotplug

If I have already loaded nouveau, then I run sway with WLR_DRM_DEVICES=/dev/dri/card0 (only loading i915 not nouveau on startup), then running
$ sudo udevadm trigger --verbose --action=Add --subsystem-match=drm --property-match="MINOR=1"

to get sway to hotplug the nouveau card works.
So technically hotplugging works, just not in a very useful way as you have to have loaded nouveau beforehand anyway.
It looks like it might have something to do with - https://gitlab.freedesktop.org/glvnd/libglvnd/-/issues/210. I might try using EGL_EXT_device_enumeration instead just to see if that fixes it.

So I tried with this patch https://github.com/neon64/wlroots/tree/egl-from-drm-fd (which should be identical in overall behaviour to https://github.com/swaywm/wlroots/pull/2654), which uses EGL_EXT_device_enumeration instead.
If the device appears after sway has started, it doesn't appear in the list of devices returned by eglQueryDevicesEXT.
It appears this may be to do with this line in libglvnd: https://gitlab.freedesktop.org/glvnd/libglvnd/-/blob/master/src/EGL/libeglmapping.c#L354 , where the list of egl devices is only init once in the library, assuming it will never change throughout the lifetime of the application.

On a closer look, this isn't as broken as I thought. Libglvnd does initialize the device list before it tries to look up the vendor which owns an EGLDeviceEXT handle. So, as long as the device that the vendor returns from eglQueryDisplayAttribEXT is also returned from eglQueryDevicesEXT, it'll work. In practice, that's probably a safe assumption.

Looks like this isn't a safe assumption, because in this case the device returned from eglQueryDisplayAttribEXT doesn't appear in eglQueryDevicesEXT (or maybe it actually does, but an incorrect and outdated cached list is used instead)

So I tried with this patch https://github.com/neon64/wlroots/tree/egl-from-drm-fd (which should be identical in overall behaviour to https://github.com/swaywm/wlroots/pull/2654), which uses EGL_EXT_device_enumeration instead.
If the device appears after sway has started, it doesn't appear in the list of devices returned by eglQueryDevicesEXT.
It appears this may be to do with this line in libglvnd: https://gitlab.freedesktop.org/glvnd/libglvnd/-/blob/master/src/EGL/libeglmapping.c#L354 , where the list of egl devices is only init once in the library, assuming it will never change throughout the lifetime of the application.

On a closer look, this isn't as broken as I thought. Libglvnd does initialize the device list before it tries to look up the vendor which owns an EGLDeviceEXT handle. So, as long as the device that the vendor returns from eglQueryDisplayAttribEXT is also returned from eglQueryDevicesEXT, it'll work. In practice, that's probably a safe assumption.

Looks like this isn't a safe assumption, because in this case the device returned from eglQueryDisplayAttribEXT doesn't appear in eglQueryDevicesEXT (or maybe it actually does, but an incorrect and outdated cached list is used instead)

Can we open a glvnd bug for this?

Can we open a glvnd bug for this?

Can we open a glvnd bug for this?

Sure I'll add one now. I wanted to get a second set of eyes on this because I wasn't 100% sure if libglvnd was to blame.

Can we open a glvnd bug for this?

Sure I'll add one now. I wanted to get a second set of eyes on this because I wasn't 100% sure if libglvnd was to blame.

Yeah, your analysis sounds correct to me.

Yeah, your analysis sounds correct to me.

alright I've opened the issue - https://gitlab.freedesktop.org/glvnd/libglvnd/-/issues/215

alright I've opened the issue - https://gitlab.freedesktop.org/glvnd/libglvnd/-/issues/215


Unable to pull and getting i/o timeout FAILED

Hi,
I've installed the plugin:
cf install-plugin cflocal

Now, I'm trying to pull and build the docker from the original app. I have empty local.yaml and this is my console out when I try to run pull:
gytenis@MyMac $ bx cf apps
Invoking 'cf apps'...

Getting apps in org my-org-com / space development as<EMAIL_ADDRESS>OK

name          requested state   instances   memory   disk   urls
dev-www    started           1/1         128M     1G     dev-www.eu-de.mybluemix.net
dev-api    started           1/1         1G       1G     dev-api.eu-de.mybluemix.net
gytenis@MyMac $ bx cf local pull dev-www
Invoking 'cf local pull dev-www'...

Error: Get http://eu-de-cc-droplets.s3.eu-geo.objectstorage.service.networklayer.com/21/35/21355eb9-8276-4391-9068-1dedee3bf512/XXXXXXXXXXXXXXXXXXXXXX?X-Amz-Expires=3600&X-Amz-Date=20180523T163630Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=XXXXXXXXXXXXXXXXXXXXXX/20180523/us-east-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=XXXXXXXXXXXXXXXXXXXXXX: dial tcp <IP_ADDRESS>:80: i/o timeout
FAILED

Any ideas?

cf local pull requests the droplet from CC. It looks like CC is redirecting you to an blob store that's behind an internal IP. Are you able to pull the droplet with cf curl? See: https://apidocs.cloudfoundry.org/1.35.0/apps/downloads_the_staged_droplet_for_an_app.html
Also, I'm not sure what happens when you use bluemix CLI wrapper with CF Local.


docs: Update the Gateway API badge

This is to update the Gateway API version to align with the conformance tests running in CI.

/test


Update strong-password.md

Typo corrected

@JohanFreelancer9 Please copy review

Issue#https://github.com/MicrosoftDocs/microsoft-365-docs/issues/5599

@Kateyanne Please merge this PR. Thanks


[Feature]: AutoPitch - automatic pitch detection

Description
Recently, a question regarding this has already been asked that, in my opinion, was not formulated quite accurately.
I would like to know if you plan to implement a function for automatic pitch detection, similar to how it was implemented in SVC.
I am not sure if this feature is still available in SVC, but about a year and a half ago, during inference, you could check the 'autopitch' box. This allowed the model to automatically adjust to the pitch of the voice in the source recording, resulting in a more realistic voice than with manual pitch adjustment (even though this feature worked poorly, the results were good). At least, that's how it seemed to me.
Problem

Proposed Solution

Alternatives Considered

SVC is no longer used, it is too old, instead we use RVC which is much better and more up to date.

SVC is no longer used, it is too old, instead we use RVC which is much better and more up to date.

pero has leído?

perdona, no se mucho ingles

SVC is no longer used, it is too old, instead we use RVC which is much better and more up to date.

Creo que piden la misma función en RVC. Estoy de acuerdo con ellos, ¡sería muy útil! entonces, al hacer inferencias, no es necesario ajustar los semitonos, lo hace por sí solo detectando el tono del audio de entrada.
Sorry for the bad spanish, this is auto-translated, I just wanted to make sure you understand.
For those who don't speak spanish, this feature would be very useful because you wouldn't have to adjust the pitch, ie -12 +12 semitones. It would automatically detect the pitch so if your model is a male voice and your input is a female voice, it would make the output pitch lower to compensate and make it sounds more natural. I used this feature all the time in SVC and found it very useful!

For such functionality to work, there should be some kind of record of what the model was trained on
detecting a max F0 value from inferred audio can be done, but adjusting the pitch down without knowing what the model is capable of, is not.

For such functionality to work, there should be some kind of record of what the model was trained on detecting a max F0 value from inferred audio can be done, but adjusting the pitch down without knowing what the model is capable of, is not.

I see! Interesting.

For such functionality to work, there should be some kind of record of what the model was trained on detecting a max F0 value from inferred audio can be done, but adjusting the pitch down without knowing what the model is capable of, is not.

Having looked into it a bit more, the way it works on SVC is that an f0 predictor is trained alongside the main model. Which explains why It wouldn't be possible with RVC. It is a shame as this would be very useful.

I also had really excellent experience with SVC Automatic pitch detection, it made the spoken voice really realistic, actually better than RVC or Applio where to be realistic, it's often necessary to do a lot of manual editing.

I also had really excellent experience with SVC Automatic pitch detection, it made the spoken voice really realistic, actually better than RVC or Applio where to be realistic, it's often necessary to do a lot of manual editing.

Me too, It was really useful for speaking audio. Maybe some brave soul can add this to Applio.

Shouldnt this be pretty simple in general? Calculate a mean f0 from the training data. Then calculate mean f0 from your clip before inference and shift by the difference.

Shouldnt this be pretty simple in general? Calculate a mean f0 from the training data. Then calculate mean f0 from your clip before inference and shift by the difference.

Interesting.

I can't precisely determine which file this is implemented in, but I assume it might be the models.py file. This file contains the parameter use_automatic_f0_prediction, which might be what you need.
Overall, it's easiest to search through the code. You might find something useful if you use this search link.

Shouldnt this be pretty simple in general? Calculate a mean f0 from the training data. Then calculate mean f0 from your clip before inference and shift by the difference.

yes, it's a code that detect input pitch and compare to model pitch, then calculate best transpose.

I implemented it for fun, making the algorithm a bit more robust for handling edge cases, I also added RMS extraction in same time. It's not a game changer but it's convenient.

feel free to open pr to see your code

I implemented it for fun, making the algorithm a bit more robust for handling edge cases, I also added RMS extraction in same time. It's not a game changer but it's convenient.

@tomakorea could you share it by any chance?

I implemented it for fun, making the algorithm a bit more robust for handling edge cases, I also added RMS extraction in same time. It's not a game changer but it's convenient.

I have tried it, and the truth is that I can't tell if I'm getting good results or not.


Simple HTTPS request issue (OpenWRT)

I can't seem to get SSLProxy to successfully make an outbound HTTPS connection.
Running on:

root@OpenWrt:~# uname -a
Linux OpenWrt 4.14.63 #0 Thu Aug 16 07:51:15 2018 mips GNU/Linux

When I issue this command:

root@OpenWrt:~# /tmp/sslproxy -c /etc/sslproxy/ca.crt -k /etc/sslproxy/ca.key -D https <IP_ADDRESS> 8443 up:8000 ua:<IP_ADDRESS> ra:<IP_ADDRESS>

I get the following output:

SSLproxy v0.7.0-2-gcb67c33-dirty (built 2020-02-14)
Copyright (c) 2017-2019, Soner Tari<EMAIL_ADDRESS>https://github.com/sonertari/SSLproxy
Copyright (c) 2009-2019, Daniel Roethlisberger<EMAIL_ADDRESS>https://www.roe.ch/SSLsplit
Build info: V:GIT
Features: -DHAVE_NETFILTER
NAT engines: netfilter* tproxy
netfilter: IP_TRANSPARENT IP6T_SO_ORIGINAL_DST
Local process info support: no
compiled against OpenSSL 1.0.2u  20 Dec 2019 (1000215f)
rtlinked against OpenSSL 1.0.2u  20 Dec 2019 (1000215f)
OpenSSL has support for TLS extensions
TLS Server Name Indication (SNI) supported
OpenSSL is thread-safe with THREADID
OpenSSL has engine support
Using SSL_MODE_RELEASE_BUFFERS
SSL/TLS protocol availability: tls10 tls11 tls12
SSL/TLS algorithm availability: !SHA0 RSA DSA ECDSA DH ECDH EC
OpenSSL option availability: SSL_OP_NO_COMPRESSION SSL_OP_NO_TICKET SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION SSL_OP_TLS_ROLLBACK_BUG
compiled against libevent 2.0.22-stable
rtlinked against libevent 2.0.22-stable
compiled against libnet 1.2-rc3
rtlinked against libnet 1.2-rc3
compiled against libpcap n/a
rtlinked against libpcap 1.8.1
compiled against sqlite 3.31.1
rtlinked against sqlite 3.23.1
1 CPU cores detected
Generated RSA key for leaf certs.
Global SSL/TLS protocol: negotiate
proxyspecs:

listen=[<IP_ADDRESS>]:8443 ssl|http netfilter
parent dst addr= [<IP_ADDRESS>]:8000
child src addr= [<IP_ADDRESS>]:0
opts=|ALL:-aNULL|no ecdhcurve|no crlurl|remove_http_referer|verify_peer|no user_auth_url|300|8192
SSL/TLS protocol: negotiate
Loaded CA: '[removed]'
Loaded ProxySpec CA: '[removed]'
Privsep fastpath disabled
Created self-pipe [r=3,w=4]
Created chld-pipe [r=5,w=6]
Created socketpair 0 [p=7,c=8]
Created socketpair 1 [p=9,c=10]
Created socketpair 2 [p=11,c=12]
Created socketpair 3 [p=13,c=14]
Created socketpair 4 [p=15,c=16]
Created socketpair 5 [p=17,c=18]
Privsep parent pid 4403
Privsep child pid 4404
Using libevent backend 'epoll'
Event base supports: edge yes, O(1) yes, anyfd no
Received privsep req type 03 sz 5 on srvsock 7
proxy_listener_setup: listen=[<IP_ADDRESS>]:8443 ssl|http netfilter
parent dst addr= [<IP_ADDRESS>]:8000
child src addr= [<IP_ADDRESS>]:0
opts=|ALL:-aNULL|no ecdhcurve|no crlurl|remove_http_referer|verify_peer|no user_auth_url|300|8192
SSL/TLS protocol: negotiate
Dropped privs to user nobody group - chroot -
Received privsep req type 00 sz 1 on srvsock 9
Received privsep req type 00 sz 1 on srvsock 11
Received privsep req type 00 sz 1 on srvsock 13
Received privsep req type 00 sz 1 on srvsock 15
Received privsep req type 00 sz 1 on srvsock 17
Inserted events:
0x77f6fd78 [fd 6] Read Persist
0x74cecc [fd 7] Read Persist
0x77f6fc68 [fd 5] Read Persist
0x74caf0 [fd 15] Signal Persist
0x74f130 [fd 3] Signal Persist
0x74f230 [fd 1] Signal Persist
0x74f330 [fd 2] Signal Persist
0x74f8d0 [fd 13] Signal Persist
0x74f9c0 [fd 16] Signal Persist
Initialized 2 connection handling threads
Started 2 connection handling threads
Starting main event loop.

And then when I test it by issuing a curl statement that hands off to sslproxy, sslproxy returns the following:

SNI peek: [www.fireshark.com] [complete], fd=17
Connecting to [<IP_ADDRESS>]:443
Client-side BEV_EVENT_ERROR
Error from bufferevent: 0:- 336134278:134:(null):20:(null):144:(null)
SSL_free() in state 00003005 = SSL_ST_CONNECT|SSL_ST_ACCEPT|0005 = SSLERR (error) [connect socket]

I'm not sure what this is telling me.  Any ideas on things to try to get this working?

You can obtain very verbose debug logs if you compile sslproxy with the DEBUG_PROXY macro in GNUmakefile, and start it with the -D4 option.
But looking at the last logs you provide, it seems like the problem is on the client side. In fact, sslproxy successfully connects to the server (www.fireshark.com) and completes SNI peek. So are you sure your listening program is running and running correctly?

Ahhhh, no I am not sure it's behaving properly (well it does work with HTTP, but that's fools gold).  From the output I thought it was on the initial connection to the target destination side (sslproxy is the client to the initial target request).  Now that I know it's on the other side, I will work through that!

If plain HTTP is working fine, I think secure HTTP should work fine too, without any modification to your listening program. Actually, the listening programs are not aware of this difference (that the actual connection was secure or not), unless they process the specific field (s or p) for it in SSLproxy line in the first packet.
Btw, the options you pass to sslproxy means that you are trying to achieve a configuration with a remote listening program (you use ua and ra options). So if your listening program was running fine locally, but not remotely, then the culprit may not be the listening program.
Note that you can find a sample listening program under the folder extra/lp in the sources, if you like.

Bah, after diving in more there was a comedy of errors in the network setup (issues with iptables and Windows 10 firewall blocking WSL Ubuntu process).   Sorry for the trouble (though your response sent me looking in the right direction)!

Hi @alfreema ,
I am also trying SSLProxy on openwrt.
Somehow, my sslproxy is not intercepting traffic my client connected to my router.
If I add a rule in PREROUTING to redirect the traffic to it, HTTP/HTTPS traffic stops work as it is trying to go to sslproxy port.
but i am unable to see any logs in sslproxy. I have compiled SSLProxy with -DDEBUG_PROXY.
Is there anything that I am missing?
Can you help me out here?
I am using lp from testproxy as the listening program.
Using this proxyspec
ProxySpec {
Proto https
Addr <IP_ADDRESS>
Port 8444

DivertAddr <IP_ADDRESS>
DivertPort 8080

ReturnAddr <IP_ADDRESS>

NatEngine netfilter
#SNIPort 443
#TargetAddr <IP_ADDRESS>
#TargetPort 9443

}

Rakesh,
It has been too long since I worked on this, and have touched tens of thousands of lines of code in other research.
My memory has faded at this point, sorry.
-a
From: rakeshbansod @.>
Sent: Thursday, September 16, 2021 2:04 AM
To: sonertari/SSLproxy @.>
Cc: Aaron L Freeman @.>; Mention @.>
Subject: Re: [sonertari/SSLproxy] Simple HTTPS request issue (OpenWRT) (#19)
Hi @alfreemahttps://github.com/alfreema ,
I am also trying SSLProxy on openwrt.
Somehow, my sslproxy is not intercepting traffic my client connected to my router.
If I add a rule in PREROUTING to redirect the traffic to it, HTTP/HTTPS traffic stops work as it is trying to go to sslproxy port.
but i am unable to see any logs in sslproxy. I have compiled SSLProxy with -DDEBUG_PROXY.
Is there anything that I am missing?
Can you help me out here?
I am using lp from testproxy as the listening program.
Using this proxyspec
ProxySpec {
Proto https
Addr <IP_ADDRESS>
Port 8444
DivertAddr <IP_ADDRESS>
DivertPort 8080
ReturnAddr <IP_ADDRESS>
NatEngine netfilter
#SNIPort 443
#TargetAddr <IP_ADDRESS>
#TargetPort 9443
}
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/sonertari/SSLproxy/issues/19#issuecomment-920633062, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIEBFYVR7LNEHHODT5Z7ERTUCGJGFANCNFSM4KWWR2EA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Reference checks not handling case where topic and non-topic element have same ID

Code was assuming a given ID would only occur once. User error can result in multiple instances of the same ID. Code should not fail utterly in that case.

This fix is bogus as there's a deeper problem in that the code assumes that topic IDs and non-topic IDs will be mutually exclusive, which they do not have to be.
Digging in deeper.

OK, refactored the code to centralize the topic reference lookup and correctly handle the case where topics and non-topic elements have the same ID. Also improved the error reporting and generally streamlined the code that was operating on the referenced topics.
It looks like the same problem may be in topicpull--checking that code now.

Didn't realize that. Will correct.

In the case of message DOTX072W I want to include the URI of target document. Should I be getting it's URI from it's @xtrf value?

I misunderstood, it's not the link source element, but rather target. Then it should just go to the message text as it already did.

OK, I updated the messaging so it reports the @xtrf value of the target document and also reports the @class value in the case where the target is not a topic.

With these latest changes the mappull processing appears to work correctly with my test doc (meaning that all the topicrefs are resolved, which they should be).
I'm still getting anomalous results from the topicpull process (reporting files as unavailable or unable to resolve link text when all the files should be present and available as the map passes Oxygen's validation).

This same general problem (and solution) applies to topicpullImpl.xsl as well. Will work on updating it as part of this pull request.

I know the commits need to be squashed but i'm not sure how or if I should do it since I've already pushed to this branch from my local dev environment.

Current code fails on three integration tests. Investigating.

Closing as inactive.


Images

We need at least 3 or 4 images for each species.
-1 base image for the results display (reused in detail page).
-Details pages need at least 3 for different ages and some with different views.

Dynamic result images added.
Have also sourced about 4 images for each species we have. Can add these once the mushroom-detail page is ready. All images are public domain.

Images for 21 species have been added. Most have a few images each, I could only find one decent image on public domain for "Purple Pouch Fungus".


bug: Ionic 4 Health undefined

Bug Report
Ionic version:
[x] 4.11.1
Current behavior:
health.isAvailable undefined
Expected behavior:
I should be able to query the health methods
Steps to reproduce:
I am using stenciljs with webcomponents + capacitor with the ionic health plugin.
Related code:
import { Component, State, h } from "@stencil/core";
import { Health } from "@ionic-native/health/ngx";

@Component({
  tag: "list-stats"
})
export class ListStats {
  private health: Health;

  componentDidLoad() {

    this.health
      .isAvailable()
      .then((available: boolean) => {
        console.log(available);
        this.health
          .requestAuthorization([
            "distance",
            "nutrition", //read and write permissions
            {
              read: ["steps"], //read only permission
              write: ["height", "weight"] //write only permission
            }
          ])
          .then(res => console.log(res))
          .catch(e => console.log(e));
      })
      .catch(e => console.log(e));
  }

  render() {
    return [
     <ion-label>

Steps

     </ion-label>
    ];
  }
}

Other information:
Logcat simply says
2019-10-26 13:53:24.786 6989-6989/in.clubtiger E/Capacitor/Console: File: http://localhost/build/core-207a0272.js - Line 65 - Msg: TypeError: Cannot read property 'isAvailable' of undefined

I cannot find anything in logcat that says the health plugin is not installed
Ionic info:
Ionic:

   Ionic CLI : 5.4.4

Utility:

   cordova-res : not installed
   native-run  : not installed

System:

   NodeJS : v10.16.0
   npm    : 6.9.0
   OS     : macOS High Sierra

When I try and instantiate the Health class in a constructor I get some different errors.
Line 65 - Msg: TypeError: Failed to resolve module specifier "@angular/core". Relative references must start with either "/", "./", or "../".
2019-10-26 15:36:56.662 14384-14384/in.clubtiger E/Capacitor/Console: File: http://localhost/build/core-207a0272.js - Line 1775 - Msg: Uncaught (in promise) Error: Constructor for "list-stats#" was not found

I am going to close this as this is more of a support request. The "@ionic-native/health/ngx"; import is for apps using Angular. In this case you should import from @ionic-native/health (without the ngx). More info: https://ionicframework.com/docs/native/overview#vanilla-javascript

👍 Ahh sorry Thats probably the issue


Add custom AMI for managed node groups

Many organizations bake their own golden AMI and it is compulsory to use their AMI for EKS worker nodes. Custom AMI can be supported by implementing Launch Template for managed node groups.

Looks like you will want to add a new property here? https://github.com/aws-quickstart/quickstart-ssp-amazon-eks/blob/main/lib/cluster-providers/ec2-cluster-provider.ts#L70 @starchx

Pretty much. The change will be in that ec2 provider, but adding Launch Template option to support custom AMI.

@shapirov103 @kcoleman731 I may not have permissions to add reviewers, can you help assign this PR? Thanks in advance :)


Error executing vim.schedule lua callback: ... attempt to index local 'request' (a nil value)

Hi, I have the following error when trying to autocomplete anything related to TypeScript. It mostly happens for couple first times after file is opened. I didn't have this issue ever before switching to typescript-tools.nvim.
Error executing vim.schedule lua callback: /usr/local/share/nvim/runtime/lua/vim/lsp.lua:1518: attempt to index local 'request' (a nil value)
stack traceback:
        /usr/local/share/nvim/runtime/lua/vim/lsp.lua:1518: in function ''
        vim/_editor.lua: in function <vim/_editor.lua:0>

My lazy.nvim setup for plugin:
{
  "pmizio/typescript-tools.nvim",
  lazy = false,
  dependencies = {
    "nvim-lua/plenary.nvim",
    "neovim/nvim-lspconfig",
  },
  opts = {
    tsserver_file_preferences = {
      includeInlayParameterNameHints = "all",
      includeInlayParameterNameHintsWhenArgumentMatchesName = false,
      includeInlayFunctionParameterTypeHints = true,
      includeInlayVariableTypeHints = false,
      includeInlayPropertyDeclarationTypeHints = true,
      includeInlayFunctionLikeReturnTypeHints = false,
      includeInlayEnumMemberValueHints = true,
    },
    settings = {
      tsserver_plugins = { "@styled/typescript-styled-plugin" },
    },
  },
},

When I didn't have lazy = false the typescript-tools haven't been attached to file automatically, even with ft = { "typescript", "typescriptreact" }.
Neovim Version: NVIM v0.10.0-dev-551+ge27377e33
typescript is installed in project as well globally via npm for each version I have with fnm (v16, v18) and in pnpm globals too (for projects with pnpm).

Can you provide some minimal config? I cannot reproduce that, it is probably conflict with some other plugin or something in your config :/

@MurdeRM3L0DY I'm sure this isn't case nvim request only one server and need only one response, I working with this routing strategy for months and no such thing happend to me. Problem is probably somewhere else, but I need some config to reproduce issue. Then I probably will be able to fix this.

Adding separate_diagnostic_server as false fixed the issue. It starts correctly with lazy = false by default without any errors.
  settings = {
    separate_diagnostic_server = false,
  }

Anyway, I think it would be better to spawn other diagnostic servers at least for performance. My config is pretty complex, I have many other LSP clients attached to TypeScript files (tailwindcss, eslint, null-ls, emmet_ls, graphql), but I am not sure if this can be related. I will try to work later on minimal config to reproduce this.

Weird I run 2 servers daily so it somehow works, minimal reproduce config will definitely help solve this issue

You were right, The issue seems to be from one of my installed plugins: nvim-navic with separate_diagnostic_server option set to true

Hmm good to know my colleague from work tell me about other issue with this plugin here barbecue use navic under the hood so there is "something no yes" with it. But this is some clue to resolve this.
FYI: @KostkaBrukowa

Ok they are some solid clues, we look into it :) I personally don't use any of this plugins so I don't have chance to bump into that.

@pmizio Could you please explain how to read logs from the servers?

@MurdeRM3L0DY they are two "level" of logs:

plugin send some logs to :LspLog but you should lower level of it because most of them are traces
tsserver logs enabled by this property - they live in temp folder as tsserver_syntax.log and tsserver_semantic.log files

right, I forgor to set log level to trace

I found (at least for me) that this error does not show up on stable version. I only get this error on nightly. I will look into this

@ecosse3 @MurdeRM3L0DY can you take a look at the PR I've made and verify if its working?

@KostkaBrukowa Yup, that seems to fix it though I can't seem to wrap my head around why it fixes it. Could you briefly explain please? thanks.

@KostkaBrukowa Yes, looks like it is fixed now. I don't have any errors, thank you! <3
tsserver is much faster now 😮

@MurdeRM3L0DY So, as you know, we have two servers running, each with its dedicated request queue. This queue determines the ID of the request passed to nvim internals. The problem arises when the ID ranges at the start are close and can overlap, causing nvim to receive duplicated requests. This initiates a race condition, where the first completed request deletes metadata in nvim internals, resulting in an error being thrown.
I hope I have explained it enough.

Yeah, that makes sense! Awesome!


Add a simple tutorial for new users

Hi,
RE: reviewing this paper for JOSS.
The documentation is very comprehensive, but (at least to me) it seems like a technical reference for existing users. As a newcomer to the software, it's not immediately obvious where best to start.
Could there be a step by step walk-through to introduce the basic concepts?
Thanks,
Adam

closed by #32


Pretrained model

Hi,
I would like to ask that how did you get the pretrained model weights? Which method did you use?
Thank you in advance.

@HqiTao

Hi, thanks for being interested in our work and please excuse the late reply!
We simply save the model weights using the torch.save() function. You can find the code here.

Thank you so much for repy, but i would like to know that how many times did you train that you got best weights at the end?

Sorry, I can't remember this.


Feature request: Represent stale test results with a different icon to tests that have been run recently.

It'd be really great to be able to see which tests haven't been run since the last change to the source part of my code by giving them a different icon to the green check in a circle used for passing tests currently. Maybe a grey icon without the circle or something?

Transferring this to VS Code since the UI and icons are handled there.
/cc @connor4312


Mention the use of dconf to fix errors with gtk themes, since gsettings doesn't work and is what the sway devs suggest

Literally spent hours trying to use gsettings like sway suggests before I found it gsettings just doesn't work properly on nixos and you need to use dconf.
If this was written here it would've saved me so much time.

Sounds good, thanks!


fix: doesn't throw error when init loading value

:tada: This PR is included in version 2.16.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Support for Adding Custom Headers in BYE Requests for DialogServer

While sending a BYE request, it would be beneficial if the implementation allowed the addition of custom headers, similar to how it's handled for other SIP methods.

hi @BeastBeno ok I now client allows WriteBye request. Are we speaking about dialog client or server.

Are we speaking about dialog client or server?

I was refering to the server

HI @BeastBeno ok I need to check, maybe It was not exposed, but yes you should be able to build request add headers and let dialog build missing parts.

fixed on main


⚠ ClamAV has degraded performance

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

HTTP code: 200
Response time: 72 ms

Resolved: ClamAV performance has improved in ff50f91.


Tweaks to log messages and input_output saving for easier parsing

@aaron-bray PTAL, I think I've addressed each of your requests from the email thread.

Is it possible for the run_align_system to also pull and write out the ST KDMA target image to the results directory?
Other than that, this has all the updates I requested

You're talking about like a JPEG / PNG of the ST KDMA target?  That seems a bit out of scope for what run_align_system should do, but let me see what that would look like

Yeah, currently the target kdma json in the align_system.log looks like some sort of binary chunk of something...
Seems like the image is really the only thing that defines a ST target KDMA to a human, so it would be nice to have associated with the results to give them better context

This should be good, we can worry about ST KDE images in a differen PR


[#3772] fix(spark-connector): Iceberg will use upper table to access gravitino server sometimes #3772

What changes were proposed in this pull request?
table name is upper for using %S
Why are the changes needed?
Fix: #3772
Does this PR introduce any user-facing change?
no
How was this patch tested?
existing tests

@qqqttt123 please help to review when you have time

@mchades Could you take a look?


cleemullins:Application Insights build fixes

Add Microsoft.Bot.Builder.ApplicationInsights assembly.
Fix unused references.
Fix the namespaces.

Pull Request Test Coverage Report for Build 44941

0 of 0   changed or added relevant lines in 0 files are covered.
7 unchanged lines in 3 files lost coverage.
Overall coverage remained the same at 55.792%

Files with Coverage Reduction
New Missed Lines
%

/libraries/Microsoft.Bot.Builder.ApplicationInsights/BotTelemetryClient.cs
1
98.85%

/libraries/integration/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core/TelemetryBotIdInitializer.cs
3
87.8%

/libraries/integration/Microsoft.Bot.Builder.Integration.ApplicationInsights.Core/ServiceCollectionExtensions.cs
3
85.11%

Totals

Change from base Build 44913:
0.0%

Covered Lines:
5500

Relevant Lines:
9858

💛  - Coveralls


Move ITBucketSnippets and improve Storage snippets tests

Coverage remained the same at 85.723% when pulling 5dda48c3839eb145ec4fbfeba7e04bfe7037c4e9 on mziccard:fix-storage-snippets into 95229d515021634cddffe89979ca2cdd95bb5b73 on GoogleCloudPlatform:master.

/cc @lesv

LGTM - I need tor read these closer.


      .connect(0xd662F96359b34Fb3430e81Bb0a1b6C0B49F36CE6)

Originally posted by @JMP2590 in https://github.com/JMP2590/chainlink/pull/39#discussion_r876585288

hi, can you please provide more info on this @JMP2590 , I can't make sense of the issue raised


Merge the UI and preferences functionality

This merge includes all of the code from the main branch up to a certain point. Runs smoothly.


Update event.js

Hi,
I've been using your node module to connect to the Last.FM API, but I needed to do a search for festivals by name, which isn't described in the official documentation, but seems to exist nevertheless (at 'event.search', similar to 'artist.search'). Therefore, I've added this extra function to your module to be able to call this specific API function. I've pretty much copy-pasted it from artist.js, so not a lot of added magic here. Just thought it would be useful to also support this call.
Gr, Jiri

Jiri, sorry it took so long to merge! This PR kinda got lost and I just saw it by accident.

Published version 0.0.6

Thank you btw! :)

Not a problem! :)
On Sat, Mar 21, 2015, 19:38 Max Kueng<EMAIL_ADDRESS>wrote:

Thank you btw! :)
—
Reply to this email directly or view it on GitHub
https://github.com/maxkueng/node-lastfmapi/pull/4#issuecomment-84415985.


Fix custom inertia in physics2d

1, set_inertia shouldn't check for >0, since a value <=0 means erasing custom inertia
2, Add a variable to save custom inertia
3, only update inertia when it's needed when change mode
4, reset angular velocity to 0 when switching to character mode
closes #30838

Thanks!


i only use g+ login

I only need google login, but when i starting activity this hava a exception witg facebook api, how to remove this?

@xperiafan13-rom Are you using the facebook button on any view? If yes, you should remove it, because if you don't set the key for FacebookSDK and have a facebook button defined on a layout, your app will crash.