Only add the new emojis to the frequent emojis list by doing a difference between former and new emojis

Details
We save the emojis present before to find out what emojis were actually added then we send that to the api
Fixed Issues
$ https://github.com/Expensify/App/issues/27464
PROPOSAL: https://github.com/Expensify/App/issues/27464#issuecomment-1721395451
Tests

Open any report
Open the emoji picker
Choose an emoji that is not in the frequently used emoji list
Open the emoji picker again and see at what position this emoji is in the frequently used emoji list
Close the emoji picker
Type a lot of characters
Open the emoji picker and verify the position hasn't changed
Write the same emoji multiple times with different methods (picker/suggestion list/copy paste/native emojis) and verify that the position change in the emoji picker

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

Offline tests
Same tests
QA Steps
Same tests

[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 / Chrome
[x] iOS / native
[x] iOS / 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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 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] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[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(themeColors.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 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 author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/19537677/c9413c57-4998-4d49-956b-ba00b5b31a6b

Mobile Web - Chrome
https://github.com/Expensify/App/assets/19537677/0a2731bd-8a00-414d-8e84-4fb42ddf7511

Mobile Web - Safari

https://github.com/Expensify/App/assets/19537677/0f794d9f-923a-4180-8b07-3f8996ea66ba

Desktop

https://github.com/Expensify/App/assets/19537677/356916f3-48bd-4f9d-a154-557d5c710f87

iOS
https://github.com/Expensify/App/assets/19537677/c8ef1b2c-463c-4689-bfad-3519b1c4a056

Android
https://github.com/Expensify/App/assets/19537677/2523efb6-10cc-454f-8b12-8a682c3b5613

@mananjadhav  onInsertedEmoji is currently required so not passing it creates an error in the console, what should I do ?

Remove the props completly since it is not used anywhere else
Create a default value
pass an empty method

@ShogunFire Best to remove the prop if not used anywhere else.
Also we still have lint issues here.

Ok I removed it, I saw there was this issue that you commented https://github.com/Expensify/App/issues/27579 about sending multiple calls to the API, right now my solution is sending the right numbers but multiple times, should I fix that here too ? It doesn't look too hard

@ShogunFire Can you complete the author checklist with the screencasts from all the platforms?

Yes, I have a problem with executing ios but I will try to make it today

@ShogunFire What's the latest update on this?

@mananjadhav Sorry for the delay, I completed the checklist

@mananjadhav will you please take care of the checklist? @ShogunFire it looks like some conflicts popped up.

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 / Chrome
[x] iOS / native
[x] iOS / 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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(themeColors.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 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

Web
https://github.com/Expensify/App/assets/3069065/dbce76fe-130e-4044-80cf-da7c6a9cdc12

Mobile Web - Chrome
https://github.com/Expensify/App/assets/3069065/ebbbe034-79b0-4dd6-8e31-b03df960a6d3

Mobile Web - Safari
https://github.com/Expensify/App/assets/3069065/23030ff2-cd23-4bc8-8f7c-0d0ce6567f8d

Desktop
https://github.com/Expensify/App/assets/3069065/4928da76-b0a8-4a3d-99aa-084663bf8b2f

iOS
https://github.com/Expensify/App/assets/3069065/05cc280f-e44d-4cdd-9917-62ceff349a03

Android
https://github.com/Expensify/App/assets/3069065/44306097-3148-4d9a-b1e8-c2dfb6f117cd

Thanks for the PR and the patience here @ShogunFire. Tests well. @joelbettner All yours.
🎀 👀 🎀 C+ reviewed.

: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.

🚀 Deployed to staging by https://github.com/joelbettner in version: 1.3.81-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/joelbettner in version: 1.3.83-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


compiler allowing dangling pointer

What was expected: Compiler disallowing dangling pointer on init func
What was encountered: Compiled without errors, encountered panic on run
Zig version: 7e11ef7
Code
const io = @import("std").io;

const grt = "hello world";

pub fn main() -> %void {
    var g = Greeter.init();

    g.SetGreeting("Hello");
    g.SetName("Josh");
    g.Greet();
    g.SetGreeting("What's up");
    g.Greet();
    return;
}

const Greeter = struct {
    // strings have type []u8 - they are a slice of bytes
    greeting: []const u8,
    name: []const u8,

    fn init() -> &Greeter {
        var g = Greeter{
            .greeting = "",
            .name = "",
        };

        // Returns dangling pointer
        return &g;
    }

    // btw, you can nest declarations, not sure if you need to do that for the UFCS to work
    fn Greet(g: &Greeter) {
        // use ++ to concat strings
        %%io.stdout.printf("{} {}!\n", g.greeting, g.name);

    }

    fn SetGreeting(g: &Greeter, greeting: []const u8){
        g.greeting = greeting[0...];
    }

    fn SetName(g: &Greeter, name: []const u8){
        g.name = name[0...];
    }
};

Panic
attempt to unwrap error: Unexpected
/usr/src/zig/build/lib/zig/std/special/zigrt.zig:14:35: 0x000000000020433c in ??? (main)
        @import("std").debug.panic("{}", message_ptr[0...message_len]);
                                  ^
0x0000000000215ddb in ??? (???)

/home/panda/zig/helloWorld/main.zig:10:12: 0x000000000020574a in ??? (main)
    g.Greet();
           ^
/usr/src/zig/build/lib/zig/std/special/bootstrap.zig:49:21: 0x00000000002046d7 in ??? (main)
    return root.main();
                    ^
/usr/src/zig/build/lib/zig/std/special/bootstrap.zig:36:13: 0x00000000002043d0 in ??? (main)
    callMain(argc, argv, envp) %% exit(1);
            ^
/usr/src/zig/build/lib/zig/std/special/bootstrap.zig:29:20: 0x00000000002042d0 in ??? (main)
    callMainAndExit()
                   ^
Aborted (core dumped)

I noticed another problem, which I made issue #345, which is that there's frame missing in the stack trace. There should be the line:
        %%io.stdout.printf("{} {}!\n", g.greeting, g.name);
        ^

Anyway, thanks for the report. I think I know how to implement a compile error for this.


Dataplane->Policies tabs calls policies endpoints but since new version should call _rules

What happened?
Since the new release for dataplane -> policies view we should call only rules_ endpoint to show only the new targetRef policies there.

Triage: swap order of new and old card. Add legacy title to old stuff


bind: Fix patching Makefile.in

There is no postPatchPhase.
Fixes a bug introduced by the libressl patch, should have either been postPatch or like this which probably is cleaner anyway.

(for staging)

Merged in https://github.com/NixOS/nixpkgs/commit/0e07172c6d8eb4527f5cfc173889943e3221e417.

Why did that patch go into staging?

Ah, now I realized why: because it follows up on a patch that's in staging.


Updates msmtp configuration & configuration file location

It was noticed that on debian the  msmtp  is looking for the configuration path at /etc/msmtprc and not /etc/.msmtprc

That is strange that CI is not working on this PR...

Dropped in favor of #62


Add Azure CLI support for new service - Microsoft.Network/dnsResolvers

Resource Provider

Microsoft.Network/dnsResolvers
Microsoft.Network/dnsForwardingRulesets
Description of Feature or Work Requested

Our service is currently in private preview phase. We need to develop the az cli for preview version for now.
Minimum API Version Required

2020-01-01-preview
Swagger Link

https://github.com/Azure/azure-rest-api-specs-pr/blob/Microsoft.Network-dnsresolver-2020-01-01-preview/specification/dnsresolver/resource-manager/Microsoft.Network/preview/2020-04-01-preview/dnsresolver.json
Target Date

This is expected to be released around March-2022

network


User cannot edit all answers to a completed activity assessment

After completing an activity assessment I can click through to revise my previous answers.
If I've answered No to the first question I can change the answer and proceed through the assessment.
But if I have answered yes to the first question and click "Next Question" to revise the answer to a later question, then instead of seeing the next question I'm taken back to the assessment page -- the application sees the activity assessment as completed so decides I don't need to see any other questions.

This is still broken.


Avoid trying to import from non-existant packages

Without this patch pdoc tries to import package's module as if there were submodules of modules as packages, for each package's modules.
Ex. if a package P contains modules M1, M2, M3, pdoc tries to import P.M1.M1, P.M1.M2, P.M1.M3, P.M2.M1, … and so on. This patch fix this, which I believe is an issue.

Please, note although this patch is reported as changing 17 lines, it's actually a lot simpler: it only adds one line, if self.is_package(): and indents what's beneath.

Thanks!


git status-related fixes

Two fixes for changes in #12:

Use path.join to construct a path (this was failing on POSIX systems)
Avoid calling git status altogether if user has set ignoreGitStatus. I was getting failures in my monorepo project due to it interpreting my package dir as the Git dir. I'm not sure why it passes --git-dir to git status (could just set the exec's cwd to match dir?), but this change means that passing ignoreGitStatus allows users in situations like mine to bypass the issue entirely.

@danay1999, pinging you since this PR changes some of your work from #12. Could I get you to have a look, or to assign some reviewers? :slightly_smiling_face:


Fix 1416 - Add rpt_study_snapshot

Overview
Fix #1416
Test Notes/Sample Code
Adds MakeRptStudySnapshot()

@jwildfire @samussiah @andersonjake1988 - once this one is ready and merged to dev, we can send @nkalkur-gilead an updated snapshot for testing, that should include all of the necessary rpt_*.parquet files.


Instance Variables in the generated docs

Currently the generated docs do not display the actual instance variables that are apart of that class, only the getter/setters (if using getter/setter/property).
For example:
class Foo
  property name : String = "Jim"
end

In this example there is no representation of the default value of name.
I propose adding a new section for instance variables.  This would only include instance variables created with getter/setter/property that are not private.  private instance vars and those created by @name syntax probably should be excluded.
I'd imagine this section being similar to the constants section, just showing the name, type, and default value (if any) of each public instance vars.
EDIT:  Also probably a bug that Defined In is displayed if the class was never used?

Instance variables are always private. They aren't documented in any language out there (Ruby, Java, C#, Go, etc.), just like anything private isn't documented at all anywhere.
Why do you need this? If you need to say that something starts with a default value, just document it.

Oh don't really need it just something I noticed.  But yea in that case prob not needed.


Consolidate app and main package.json dependencies to avoid duplication

Depends on https://github.com/mozilla/tofino/pull/1364

This is failing for some inexplicable reason, looking into it.

Fixed.

LGTM


proc refactoring: make stack, disassemble and eval independent of proc.Process

Second step on the way to #782

Done.


message view: Admin should always be able to edit topic from actions menu.

Logged in as Iago:

The first entry should be View source / Edit topic, and it should allow editing the topic when you click on it. (When Allow message editing is something other than Never.)
Looks like this regardless of whether Users can edit the topic of any message is checked.

I don't think this is a bug per se.  I believe it's more a case that we've never given specific exemptions for admins when it comes to topic editing.  (We do give admins extra powers for deleting messages.)
I could reproduce this only for old messages.  So it appears that admins are specifically locked out after the message-edit expiration time.  You can verify this by having somebody other than Iago send a message to Verona so that you have a new message.
Do we want admins to be able to edit topics no matter how old the message is?
Once we have clarity here, the fix should be fairly simple.  There's a function called get_editability in static/js/message_edit.js that we would modify, putting a check for page_params.is_admin in the appropriate place.  You'll need to be extra careful not to allow admins any extra power for modifying the message itself--they should only be able to edit topics.  There are also node tests in frontend_tests/node_tests/message_edit.js.
cc @YJDave and @shubhamdhama, who have been in this code recently, and who may have some background on previous decisions here

ah, 689c7172 is mistaken about the intended policy. @shubhamdhama, do you have time to fix?
Also note the existence of editability_types.TOPIC_ONLY. There shouldn't need to be an is_topic_editable.
https://zulipchat.com/help/configure-message-editing-and-deletion has the intended policy.

So the issue is "View source/edit topic on others' messages when message editing is allowed".
But I'm confused regarding the consensus of last three messages @rishig can you please clear to me how the mentioned commit violates the intended policy?

There is no situation in which the time a message was sent should affect its topic editability. That has always been the intended policy, though I guess there has been some confusion around it.
Does that help clarify things?
As an side note, given the complexity of the message editing logic, it would be great to move all editability computations into message_edit.get_editability. All other code (e.g. deciding whether to display View source/edit topic, View source, or something else) should make decisions based solely on the message's editability_types.
Regardless of the policy issues, the first step of refactoring everything into message_edit.get_editability would be a big help, and is almost all of the work.

@zulipbot claim

Thanks for clarifying this @rishig  and sorry for late response due to exams till 13th Oct., and looks like @onkarshedge has already opened a PR regarding this. Thanks, @onkarshedge, I would love to review it for now.

There is no situation in which the time a message was sent should affect its topic editability. I.e. there should be no concept of "time limit" for topic editability.

Ok, reading the code more, it looks like this is not the case, and that for non-admins, we do want to restrict them to DEFAULT_COMMUNITY_TOPIC_EDITING_LIMIT_SECONDS. We can figure out the right policy after the refactoring work.

This still feels a bit haphazard (ideally all the editability computations would be in message_edit.get_editability), but I guess we can fix that the next time we're looking at this code.


updated scv outlier to only throw out high power windows

Hello @rdgao, Thank you for submitting the Pull Request !

In the file neurodsp/spectral.py, following are the PEP8 issues :

Line 128:65: E261 at least two spaces before inline comment
Line 133:5: E303 too many blank lines (2)

Do see the Hitchhiker's guide to code style

is this a problem? seems like a weird error that python 3.4-3.6 does not exist. or can I just merge it?
@srcole @TomDonoghue

Not sure what happened with py34, but in 35 & 36 it looks like the test_fitpsd test failed, so that seems like an issue?


dotnet-core-desktop-runtime: Add version 3.1.11

The original windowsdesktop-runtime version (3.x) is now in LTS, therefore is moved into separate manifest.

I said move it to versions bucket...

https://github.com/ScoopInstaller/Versions
This bucket? I don’t even know it exists...


How to train MMT using centralized datastream in a Leader-Followers cluster?

So I've set up a Leader-Followers cluster in AWS Kubernetes environment with nvidia-docker.
Next step is to train MMT sending parallel or TMX data into centralised datastream.
But how exactly this could be done?
I've tried using kafka-console-producer.sh from Kafka CLI to upload a TMX file into memory-upload-stream topic. That seem to have produced no effect.
root@modernmt-0:/tmp/kafka/kafka_2.12-2.3.0# bin/kafka-console-producer.sh --broker-list modernmt-0.modernmt:9092 \
>  --topic mmtDS-memory-upload-stream < Books/en-ru.tmx
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # outputs a long line of ">>>"

This would be great to have a datastream usage example in the wiki.

Hi @tabulahussla
I'm not sure if you are mixing two different concepts together, so let me try to explain.
First ModernMT requires a good, general-purpose, neural engine model that must be trained from scratch just like any other NN framework does. The main difference is that with ModernMT is way more simpler: just use the command mmt create (you can type ./mmt create --help to have more infos). In this step ModernMT will use the GPUs on the single machine where you have started the command, so the cluster won't help much.
After you have the engines, and you correctly setup a ModernMT cluster, you can then upload TMXes or even single contributions in real-time, without the need of a re-training: ModernMT will be able to adapt on that new content right away. In order to add new contributions or memories you don't have to go too deep (Kafka level) but you have the ability do this in two ways:

Command line: with commands like mmt memory import or mmt memory add, again you can use --help to print the instructions.
Directly via REST API: with the Create memory API and Add to Memory API

Wow that exactly what I needed to notice. I was unable to train MMT on NVIDIA Tesla GPU's with 8GiB RAM that I've rented from Amazon. So I thought clustering will be a solution. But my solution turned out to be a much more powerful setup with 16x NVIDIA Tesla GPUs with 12GiB RAM. With this setup training took only about 17 hours to be loosing around 0.001 per iteration in "loss". Isn't this amazing?


Github CI: portable Docker image suffix

📝 Summary
Github CI: proper portable suffix for Docker image

✅ I have run these commands

[x] make lint
[x] make test-race
[x] go mod tidy

Codecov Report

Merging #384 (e2d84bf) into main (c719e72) will increase coverage by 0.45%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #384      +/-   ##
==========================================
+ Coverage   66.66%   67.11%   +0.45%
==========================================
  Files           7        7
  Lines         888      888
==========================================
+ Hits          592      596       +4
+ Misses        262      258       -4
  Partials       34       34

Flag
Coverage Δ

unittests
67.11% <ø> (+0.45%)
:arrow_up:

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

Impacted Files
Coverage Δ

server/service.go
80.23% <0.00%> (+0.95%)
:arrow_up:

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


Create new Functions and Collector Documentation

See here
https://github.com/metafacture/metafacture.github.io/tree/Morph-Documentation-Page

PR is at https://github.com/metafacture/metafacture.github.io/pull/9

Pushed some tweaks in https://github.com/metafacture/metafacture.github.io/commit/79ffd14e19fed16178f209def65f5f2758dd938d. In context of https://github.com/metafacture/metafacture-documentation/issues/8, we decided to use the work here as a template and content for generated function and collector references. Will be handled in new issues under https://github.com/metafacture/metafacture.github.io/issues, using content in https://github.com/metafacture/metafacture.github.io/pull/9. Closing.


Added aria-expanded attribute to add new column button

Please describe the problem you're fixing here. Include the issue number, if applicable.
Refine of #7668 PR (+ requested changes of the PR)
Screenshots (Unit test and manual tests)

Normal

When fresh reload (should be false - ✔):

On click  (should be true - ✔):

When aria-expanded="true" and reload (should back to false - ✔) :

Edge cases

Adding column (both button should be false - ✔)

when aria-expaned is true for one button and swtiching to another button should make false to current and true to where it switched -  ✔

https://github.com/user-attachments/assets/090700de-62bf-4e90-9d50-ba2ecff340aa

All unit test for JS passing

(updated snapshot)

is it bad to write like this? :

Merged in df8a6f219cb5f4b77002795bb31318b6a323a922


AutoCreateChatterBotFiles does not fire on first insert

When I first upload a file through chatter with the autoCreateChatterBotFiles set as TRUE the flow does not create a Chatter Bot File record. However, when I update the version of the file by updating the file it will create the Chatter Bot File record. Is there a way we can get the app to create the Chatter Bot File the first time a file is uploaded through Chatter? Let me know if I am missing something on my end. Thanks Doug!

Hi @wadams2010,
I am not able to reproduce this. Can you double-check that the Custom Setting Chatter Bot Files Setting has a default organization value checked for Auto Create Chatter Bot File Records?

In my dev org, as the System Administrator, I enabled that custom setting above then uploaded a new Chatter File from the Files" tab. I then navigated to the Chatter Bot Files tab and saw the new record created for the file having been inserted.
Could you provide screen shots or a quick video of your setup and test steps?
Perhaps try re-installing the solution from GitHub?
Thanks,
Doug

Closing old issues, if this is still a problem for you please comment and I'll re-open. Thanks!


How to set particular tab active  ?

I want to set a particular tab active by default.
I have tried this but it is not working.
<mat-tab-group class="m-t-30" [(selectedIndex)]="selectedIndex">
    <mat-tab label="{{wf.ApproverName}}" *ngFor="let wf of workflow_list">
    </mat-tab>
</mat-tab-group>

Please keep GitHub issues for bug reports / feature requests. Better avenues for troubleshooting / questions are stack overflow, gitter, mailing list, etc.

@Input()selectedIndex: number | null: The index of the active tab.
SelectedIndex expects a number binding as property, so you can select any tab starting from 0 to (workflow_list.length - 1)
<mat-tab-group class="m-t-30" [selectedIndex]="2">
    <mat-tab label="{{wf.ApproverName}}" *ngFor="let wf of workflow_list">
    </mat-tab>
</mat-tab-group>

@camilogiraldo is correct. Closing as a non-issue.


Amplify Analytics BROKE up my WHOLE project

Here is the nightmare happened to me with amplify analytics which messed up my whole project.
Step 1 : Thought adding amplify  analytics was so simple so tried adding "amplify add analytics" then did the push then it did throw an  error stating that "nodejs6.10" issues it is caused by amplify itself because when I did "amplify add analytics" it did add the default node as "node6.10" then it went back to rollback mode and all the drama.
finally then if I do anything  (publish,remove,push )it's throwing error that "stack delete failed" and all....
so basically now I can't use my project or publish my code.
then I decided to change node myself then changed to nodejs8.10 but as the previous stack is in delete failed it didn't let me do anything else. So I manually went and delete and I promise that's not easy too then I manually forcefully deleted but then the stack deleted my client id's and arn of my cognito pools. So, now I can't even signin to my website and my website was down now.
Then left with no choice I did create new amplify env and did everything from the start .like adding and hosting as my production website gone down due to cognito issue.
Now here is the catch I can't ask all of my hunderd 's of users to signup again. So I thought migrating users would fix all my issues But aws say's "It wont be that easy". I tried migrating using their documentaion and it's worse they don't even show which modules they are importing.(others are also facing this issue)
"https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-import-using-lambda.html"
Now left with no choice I fixed it somehow. Now as my clientid's deleted in the cognito . Iadded it manually now what it is saying is that ""errorMessage": "Unable to verify secret hash for client 2vet1o3lnn0lboepkfvtprl8qo", .
Please somebody helpme quickly by either fixing my migration error or getting back my old stack perfectly
Some of my latest amplify analytics errors:

have you tried amplify env pull --restore then do amplify push ?

amplify env pull --restore

yeah I did tried it but sadly didn't workedout.

@jmandivarapu1 This doc - https://aws-amplify.github.io/docs/cli/lambda-node-version-update couldn'e helped you out with the Analytics Lambda migration if you'd informed us before about us rather than deleting the Cloudformation stacks from your console. Nevertheless, I beleive Cognito stores a backup of your userpool (for a limited period) and you can contact AWS Support to recover your userpool (for existing users).

I do have my userpool and created all my webclient. But all configuration and roles are gone I think. So, it's not letting me login back into website.

@jmandivarapu1 This doc - https://aws-amplify.github.io/docs/cli/lambda-node-version-update couldn'e helped you out with the Analytics Lambda migration if you'd informed us before about us rather than deleting the Cloudformation stacks from your console. Nevertheless, I beleive Cognito stores a backup of your userpool (for a limited period) and you can contact AWS Support to recover your userpool (for existing users).

I have my old user pool. S
o, the best thing I thought is that I would migrate the users from old pool to new pool (again hosted my website)using this code. But this documentation is pretty unclear like how to to import lookupUser,authenticateUser ...etc
Notonly me someother people also posted about this.
exports.handler = (event, context, callback) => {

    var user;

    if ( event.triggerSource == "UserMigration_Authentication" ) {

        // authenticate the user with your existing user directory service
        user = authenticateUser(event.userName, event.request.password);
        if ( user ) {
            event.response.userAttributes = {
                "email": user.emailAddress,
                "email_verified": "true"
            };
            event.response.finalUserStatus = "CONFIRMED";
            event.response.messageAction = "SUPPRESS";
            context.succeed(event);
        }
        else {
            // Return error to Amazon Cognito
            callback("Bad password");
        }
    }
    else if ( event.triggerSource == "UserMigration_ForgotPassword" ) {

        // Lookup the user in your existing user directory service
        user = lookupUser(event.userName);
        if ( user ) {
            event.response.userAttributes = {
                "email": user.emailAddress,
                // required to enable password-reset code to be sent to user
                "email_verified": "true"
            };
            event.response.messageAction = "SUPPRESS";
            context.succeed(event);
        }
        else {
            // Return error to Amazon Cognito
            callback("Bad password");
        }
    }
    else {
        // Return error to Amazon Cognito
        callback("Bad triggerSource " + event.triggerSource);
    }
};

@jmandivarapu1 Did you create a new env? If you created a new env, all the corresponding roles, user pool configurations will get cloned along with the app clients.

@jmandivarapu1 Did you create a new env? If you created a new env, all the corresponding roles, user pool configurations will get cloned along with the app clients.

I didn't after the stack got deleted my old env also got disappeared.
Now i am following this
"https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-import-using-lambda.html"
Just wanted to migrate the old users to new user pool. then they can login in the normal way
but i don't know what npm package they used for the authenticateUser and  lookupUser
can u help with that.?

and one solution i tried is that I rolled back to my old environment and tried the amplify push then. But I am getting this error. Is there anyway to fix this. Just asking if any such solution exist?

@jmandivarapu1 Did the deletion of your stack delete your Cloudfront distribution as well? Are you able to access your website? You can check your Cloudfront distribution in amplify/backend/amplify-meta.json file.

@jmandivarapu1 Did the deletion of your stack delete your Cloudfront distribution as well? Are you able to access your website? You can check your Cloudfront distribution in amplify/backend/amplify-meta.json file.

Nope I wasn't able to access my website from yesterday "https://d19v75l5red964.cloudfront.net/"
At this point I was okay with any solution. But only goal of me was not to ask all my users signup again

if i try to restore

Just wanted to migrate the old users to new user pool. then they can login in the normal way

Do you have custom attributes on your users? That's the main snag when writing a migration trigger lambda for user pool -> user pool. And since you are trying to migrate within a single account you don't need to manually invoke sts.assumeRole. Here's a snippet that might help you, I didn't bother to put in proper error handling, etc so it's up to you to make it robust enough for your application. I would say this code is close to the bare minimum needed to do single-account user pool -> user pool migration.
const AWS = require('aws-sdk');
const cognitoIdentity = new AWS.CognitoIdentityServiceProvider({ region: '<your-region-here>' });

const UserPoolId = process.env.deprecatedUserPoolId;

exports.handler = async (event) => {
    const { userName } = event;

    const getUserParams = {
        Username: userName,
        UserPoolId
    };

    try {
        const user = await cognitoIdentity.adminGetUser(getUserParams).promise();
        //TODO: if you have custom attributes, grab them from the user variable and store them in the response below
        event.response = { finalUserStatus: "CONFIRMED" }
        return event;
    } catch (e) {
        throw e; //no user to migrate, give them an error in the client
    }
};

At this point I was okay with any solution. But only goal of me was not to ask all my users signup again

Hosting category is pretty rock-solid and is pretty plug-n-play, the only thing you'd have to do there besides reprovision the category is to cutover your DNS to the new CloudFront distribution (assuming you're using a URL besides the CF url).

@jmandivarapu1 tl;dr b/c my website is on fire:
The quickest way for you to get back online is to:

provision a new amplify environment
add your auth and hosting categories, make sure to keep configs consistent
create/update the migration trigger and add it to your user pool
enable USER_PASSWORD_AUTH in your app clients and configure your source code to use USER_PASSWORD_AUTH

Just wanted to migrate the old users to new user pool. then they can login in the normal way

Do you have custom attributes on your users? That's the main snag when writing a migration trigger lambda for user pool -> user pool. And since you are trying to migrate within a single account you don't need to manually invoke sts.assumeRole to call the adminGetUser API. Here's a snippet that might help you, I didn't bother to put in proper error handling, etc so it's up to you to make it robust enough for your application. I would say this code is close to the bare minimum needed to do single-account user pool -> user pool migration.
const AWS = require('aws-sdk');
const cognitoIdentity = new AWS.CognitoIdentityServiceProvider({ region: '<your-region-here>' });

const UserPoolId = process.env.deprecatedUserPoolId;

exports.handler = async (event) => {
    const { userName } = event;

    const getUserParams = {
        Username: userName,
        UserPoolId
    };

    try {
        const user = await cognitoIdentity.adminGetUser(getUserParams).promise();
        //TODO: if you have custom attributes, grab them from the user variable and store them in the response below
        event.response = { finalUserStatus: "CONFIRMED" }
        return event;
    } catch (e) {
        throw e; //no user to migrate, give them an error in the client
    }
};

At this point I was okay with any solution. But only goal of me was not to ask all my users signup again

Hosting category is pretty rock-solid and is pretty plug-n-play, the only thing you'd have to do there besides reprovision the category is to cutover your DNS to the new CloudFront distribution (assuming you're using a URL besides the CF url).
EDIT: oh, and the migration trigger doesn't get called with SRP auth because the actual username and password doesn't go over the wire. So modify your Cognito app clients to allow USER_PASSWORD_AUTH, then update your Auth configuration in your source to force USER_PASSWORD_AUTH flow instead of default SRP flow.

o, the best thing I thought is that I would migrate the users from old pool to new pool (again hosted my website)using this code. But this documentation is pretty unclear like how to to import lookupUser,authenticateUser ...etc

That sample code is for migrating a user from a legacy database, and the authenticateUser, lookupUser functions are just abstractions for your business logic (which AWS can't write for you). For instance if you have to migrate from a legacy database (not a user pool), then you would lookup their user in your table, grab their salt, hash the password passed in to the migration trigger using the same logic you did in your legacy authentication method, compare it against the stored hashed password in your legacy database, etc. (It gets a little simpler if you were storing passwords in plaintext, but let's not consider that.)
User pool -> user pool is a piece of cake comparatively.

I did exactly the way you said.
But I am getting the error. I created the lambda logs too and it's finding user and returning all the variables. (I took care of custom attributes also)
"Cannot modify the non-mutable attribute sub"

Lol, the code to extract the custom attributes is non-trivial and I excluded it because I didn't want to write your whole program for you, and was in a bit of a hurry. I don't know exactly how you implemented it but clearly you're trying to copy over all attributes instead of just custom attributes. You don't get to define the sub, that's left up to the token issuer (in this case, the Cognito user pool). Just like you don't get to modify iss or any of the other default attributes.
Here's a good entry point for learning more about how tokens work: OpenID default claims
Hint: filter the array to get only the custom attributes, or use a reducer starting with an empty array.

@jmandivarapu1 The code to extract the custom attributes is non-trivial and I excluded it because I didn't want to write your whole program for you, and was in a bit of a hurry. I don't know exactly how you implemented it but clearly you're trying to copy over all attributes instead of just custom attributes. You don't get to define the sub, that's left up to the token issuer (in this case, the Cognito user pool). Just like you don't get to modify iss or any of the other default attributes.
Here's a good entry point for learning more about how tokens work: OpenID default claims
Hint: filter the array to get only the custom attributes, or use a reducer starting with an empty array. Or if you only have a few customs then you could create a const list of names of custom attributes manually with the prefix and map over it to get just those attributes.
Also I assumed you knew this if you were using custom attributes, but just in case, Cognito custom token claims are prefixed with custom:.

Thank you for all the help. Now I was able to migrate users from old pool to new pool.
But I did observed one more thing that is if I am using   authenticationFlowType: 'USER_PASSWORD_AUTH' then  Auth.currentUserInfo() of the authenticated user is returning NULL. But I used that in my project multiple times. Is there any way to fix that too.
  Auth: {
        userPoolId:  "----------",
        userPoolWebClientId: "------------",
        region: 'us-west-2',
        authenticationFlowType: 'USER_PASSWORD_AUTH'
    }

Thank you for all the help. Now I was able to migrate users from old pool to new pool.

You're welcome. I open a lot of issues in this repo AND I feel your pain in losing a production stack, so I wanted to help if I could.

But I did observed one more thing that is if I am using authenticationFlowType: 'USER_PASSWORD_AUTH' then Auth.currentUserInfo() of the authenticated user is returning NULL. But I used that in my project multiple times. Is there any way to fix that too.

Sounds like a bug, you should open an issue. If you need it fixed ASAP you can trace the program and patch it in your node_modules, it looks to me like it's failing on this line: https://github.com/aws-amplify/amplify-js/blob/master/packages/auth/src/Auth.ts#L1587


Epic: tenant relocation between pageserver nodes

Motivation
We want to be able to assign tenants and timelines to the pageserver running on the appropriate EC2 instances, to be able to distribute the tenants and their workloads on EC2 instances fairly. This helps achieve the stable user query latencies, avoid noisy neighbor issues and when necessary perform maintenance and upgrades on the nodes where the pageserver runs.
See #985 for a similar issue on safekeepers
DoD
Add possibility to move tenant from one storage node to another. For now it is okay to require compute node restart to do that.
Tasks
This may be trickier than moving the safekeepers.
Moving tenant between pageservers is more involved. At first we need to "attach" tenant to the new pageserver by loading it's data from S3; subscribing to one of the safekeepers that serve that timeline; restarting compute with new pageserver address (here we assume that safekeepers use that connection info too). I think first 2 steps should be handled by one attach_tenant(tenant_id, s3_info, [safekeepers]) command, which should be asynchronous.

[x] #896
[x] #897
[x] #898
[x] #900
[x] #899
[x] zenithdb/console#252
[x] zenithdb/console#814
[x] #1560
[ ] #1555
[ ] #2740
[x] #901
[ ] #2444
[x] setup a new pageserver with bigger disk (ps-N+1) and migrate tenant from ps-2
[ ] once this is released, release S3 prefix on prod so that we only have one prefix on prod

Follow ups after v0 PR (#995):
Callmemaybe related fixes can be postponed and needed features are planned to be implemented on top of Storage coordination: https://github.com/zenithdb/zenith/issues/1180
Follow ups (may be in separate Epics):

[x] #1171
[ ] support multiple pageservers in cli to simplify testing
[ ] races between branch creation and tenant migration
[ ] more extensive (randomized) tests with tenant migration (in e2e tests?)

Some more notes.
What is the sequence of actions to test moving a tenant to a different pageserver?

Init pageserver old
Create new tenant
Insert some data
Run a checkpoint
Wait for it to be uploaded to the remote storage
Bootstrap new pageserver
Wait for all the data to be downloaded
Execute callmemaybe so new pageserver starts replication from safekeeper
Wait for replication to catch up
Restart compute with changed pageserver address
Shut down tenant on the old pageserver

What bothers me the most is that it becomes possible for two pageservers to write checkpoints concurrently to the same s3 path. Though they'll probably write the same data I wouldnt rely on that, there might be a version upgrade and the format might diverge. So I think we shouldn't allow that. This case can be guarded with some flags like when we attach timeline to a different pageserver it shouldn't try to upload something to s3. But this is still quite tricky. We shouldn't crash because of OOM here because InMemoryLayers can now be swapped to disk but still we should manage this somehow. I'll investigate possible solutions

Some more notes.
What is the sequence of actions to test moving a tenant to a different pageserver?
1. Init pageserver old

2. Create new tenant

3. Insert some data

4. Run a checkpoint

5. Wait for it to be uploaded to the remote storage

6. Bootstrap new pageserver

7. Wait for all the data to be downloaded

8. Execute callmemaybe so new pageserver starts replication from safekeeper

9. Wait for replication to catch up

10. Restart compute with changed pageserver address

11. Shut down tenant on the old pageserver

I think for a v0 you can just go from 7 to 10 directly. It would be a bigger performance hiccup for compute, but should be okay from the correctness standpoint. After that we can add more synchronization between steps 7-10. Note that you can connect pageserver to safekeeper without callmemaybe.

What bothers me the most is that it becomes possible for two pageservers to write checkpoints concurrently to the same s3 path. Though they'll probably write the same data I wouldnt rely on that, there might be a version upgrade and the format might diverge. So I think we shouldn't allow that. This case can be guarded with some flags like when we attach timeline to a different pageserver it shouldn't try to upload something to s3. But this is still quite tricky. We shouldn't crash because of OOM here because InMemoryLayers can now be swapped to disk but still we should manage this somehow.

OOM shouldn't be the case here since pageserver anyway can spill files to disk. We can have unconditional check that if we are trying to overwrite existing valid files on s3 we need to check crc/hashsum and do nothing if they match -- that should help with your case IIUC.

I think for a v0 you can just go from 7 to 10 directly

Yeah, currently I just insert sleep calls if something needs waiting with todos to replace with api calls for proper synchronization.

do nothing if they match

What if they don't? Currently there is an archiving mechanism on the way to land in #874 and I've raised similar concerns there too. Can there be some non determinism in the files layout? Can there be a different version of pageserver with some changes to file layout? So I think now we might want to avoid both: overwriting files in s3, extracting s3 data to non empty local timeline. What do you think?
cc @SomeoneToIgnore

Let me summarize whats left here:

There is a possible race with branch creation. So if branch is created when relocation is in progress it can be lost. There is a possible fix to track that on the client side. I e make some eventually consistent algorithm which will converge to proper branch set on target pageserver. This solution was implemented but was not committed to cloud repo.

Other issue is related to background operations that can corrupt state on remote storage (s3) if they're running on both pageservers simultaneously (gc/compaction)

This can be mitigated by suspending background operations before relocation. Corresponding issue: https://github.com/neondatabase/neon/issues/2740 I attempted to implement that, but with current state of tenant management thing its hard to do that reliably. PR with that attempt https://github.com/neondatabase/neon/pull/2665
This approach has some downsides, and I wrote an RFC with better proposal, but it is a way heavier change: https://github.com/neondatabase/neon/pull/2676. RFC involves some future problems which will occur when we start thinking about scaling one tenant to multiple pageservers
So I think its better to start with suspending background operations now

Another bug that needs to be resolved: https://github.com/neondatabase/neon/issues/3478


DB query 7

GIVEN a command-line application that accepts user input
WHEN I choose to update an employee role
THEN I am prompted to select an employee to update and their new role and this information is updated in the database

completed


MM-27167: Add undefined check

Summary
Debugging the ticket linked below, we found a potentially undefined value in DataPrefetch. We don't know whether this will fix the bug (whose reproduction is quite inconsistent), but adding the check will not hurt.
Ticket Link
https://mattermost.atlassian.net/browse/MM-27167

@lindalumitchell, assigning this to you just to keep QA in the loop, but I don't think a QA review is needed here, as we just add a check on an undefined value. Furthermore, the bug is pretty inconsistent, so we'll need to merge this anyway to make sure it does not reproduce again.


[Stimulus] Allow Twig 3.9

As long Twig or Live component restrict Twig (until we implement yield ready) no need to restrict it here...
... and that would ease IRL tests for Twig&Live :)

Thanks Simon.


Setting context properties

Setting context properties like version, UserID. Is that possible?

You should be able to, what are you trying to do?
The API is (at least supposed) to be identical, to the normal application-insights.

userId is set with setAuthenticatedUserContext.
To set custom properties i think you need to add a custom telemetry initializer.
https://github.com/Microsoft/ApplicationInsights-JS/blob/master/API-reference.md#addtelemetryinitializer
This doesn't appear to exposed though this library.

I think the problem is here:
https://github.com/MarkPieszak/angular-application-insights/blob/b1deeeb27ddc5b1a0eef8208c79e4f2cedb82355/src/app-insight.service.ts#L42-L48
AppInsightsService defines a queue and context field but they are never set to anything.
constructor( @Optional() _config: AppInsightsConfig, public router: Router) {
    console.log('service created');
    this.config = _config;
    this.queue = AppInsights.queue;
    this.context = AppInsights.context;
  }

FTW?

Should then be able to do something like this:
      appInsights.context.addTelemetryInitializer((envelope: Microsoft.ApplicationInsights.IEnvelope) => {
        const ti = envelope.data.baseData;

        ti.properties = ti.properties || {};
        ti.properties['foo'] = 'bar';
      });
    });```

Fixed via e5040bea467f2e759583cc9dae8b3f8bc7ec43b5 thanks to @worldspawn 🎖


Add option HUNTER_INSTALL_WITH_DEPENDENCIES to install dependencies to CMAKE_INSTALL_PREFIX

Alternative approaches

Copy all files from HUNTER_INSTALL_PREFIX location to the destination directory (add target/install code?). Not an optimal way because may copy dependencies installed by other projects since this directory is shared.
Same as above but choose some new HUNTER_ROOT directory only for this project, i.e. build everything from scratch. Not optimal because HUNTER_ROOT is not shared (may be quite optimal if use binaries from server feature?)
Just use Hunter! :)

Approaches that will not work

We can't just change final destination (CMAKE_PREFIX_PATH or ./configure --prefix) of Hunter packages since some service information saved in HUNTER_ROOT. E.g. we install Boost to /custom/user/install/location and save DONE stamp. Next project that want to see Boost will not install anything because DONE is saved. At the same time it doesn't know anything about /custom/user/install/location.
Since not all projects use CMake as a build system we can't run build twice with different CMAKE_PREFIX_PATH: cmake -DCMAKE_PREFIX_PATH=$HUNTER_INSTALL_PREFIX and cmake -DCMAKE_PREFIX_PATH=/custom/user/install/location.
Even if we can suggest that two different install destination can be used, packages can be installed from cache hence need to update "unpack from cache" logic (+ dependencies).

Implementation

Files from Hunter root (libraries/headers) will be installed by command install(SCRIPT ...). This command will be added on Hunter initialization in the end of hunter_finalize module (after we know HUNTER_INSTALL_PREFIX). And only if HUNTER_INSTALL_WITH_DEPENDENCIES is ON. Snippet will looks like this:

if(HUNTER_INSTALL_WITH_DEPENDENCIES)
  hunter_test_string_not_empty("${CMAKE_BINARY_DIR}") # sanity check
  set(
      HUNTER_INSTALL_DEPENDENCIES_WORKING_DIRECTORY
      "${CMAKE_BINARY_DIR}/_3rdParty/Hunter/install-dependencies"
  )
  file(MAKE_DIRECTORY "${HUNTER_INSTALL_DEPENDENCIES_WORKING_DIRECTORY}")
  configure_file(
      "${HUNTER_SELF}/cmake/install-dependencies.cmake.in"
      "${HUNTER_INSTALL_DEPENDENCIES_WORKING_DIRECTORY}/run.cmake"
      @ONLY
  )
  install(SCRIPT "${HUNTER_INSTALL_DEPENDENCIES_WORKING_DIRECTORY}/run.cmake")
endif()

Each project should save list of installed files, see separate feature request: https://github.com/ruslo/hunter/issues/275
Each hunter_download command should copy information about package and it's dependencies (see hunter_get_dependency_list) to the HUNTER_INSTALL_DEPENDENCIES_WORKING_DIRECTORY (must be visible globally in this case, cache variable?). Format:

- packages/
    <package>/
      - <package>.list
      __components/
        <component>.list

script run.cmake (template run.cmake.in) must use *.list files to install it to the CMAKE_INSTALL_PREFIX directory

Notes

does install(SCRIPT code need to be protected with guard to avoid double execution? If so we can't use cache variables (will be TRUE if rerun from scratch) and can't use regular variables (not visible from different directories, see PARENT_SCOPE) => need to add global property variable.
We need to copy custom Find*.cmake files that used from Hunter (https://github.com/ruslo/hunter/tree/master/cmake/find). This files used as a workaround/improvements of standard CMake modules. We can install it too but user have to modify CMAKE_MODULE_PATH variable manually to see them.
non-cacheable packages will not work

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

By using the GIT_SELF feature effectively functionality is the same as requested: we creating separate directory with installed dependencies and installed package itself:

https://docs.hunter.sh/en/latest/user-guides/hunter-user/git-self.html

Workarounds:

If local library is shared you can build dependent libraries as static. In this case all symbols from static libraries will be absorbed by shared library and you don't have to install them at all.

If all libraries are shared or all libraries are static you can install dependent libraries manually using pattern:

install(
    FILES
    $<TARGET_FILE:OpenSSL::Crypto>
    $<TARGET_FILE:ZLIB::zlib>
    DESTINATION
    lib
)

I see a general problem here:
let's say I'm building a library MyLib. And my public headers are depending on Eigen3 headers.
Then Eigen3 public headers need to be installed when MyLib is installed. But somehow one must ensure that the Eigen3 headers are installed into a private prefix (e.g. /usr/local/include/MyLib/private/Eigen) so that it does not conflict with other installations of Eigen.
However, it MyLib does only privately (e.g. target_link_libraries(MyLib PRIVATE Eigen3::Eigen) ) then the Eigen3 don't need to be installed at all.
This can get quite complicated fast.

And my public headers are depending on Eigen3 headers

Yes, in the workaround I've mentioned public headers should not depend on third party headers (at least it's a simplest solution).

But somehow one must ensure that the Eigen3 headers are installed into a private prefix

Why private? It should be public too. For example your library do include Eigen3 headers by #include <Eigen/something> and you put everything to private/Eigen. In this case when somebody want to use your library the requirements for header path should be something like -I/path/to/MyLib/public -I/path/to/MyLib/private. Now imaging that user want to use Eigen3 too and adds it by -I/path/to/my/Eigen. As a result build will have -I/path/to/my/Eigen -I/path/to/MyLib/public -I/path/to/MyLib/private hence MyLib public will not use Eigen3 headers from -I/path/to/MyLib/private. Compile errors and ODR vioaltions guaranteed in a long term.
Note that with GIT_SELF feature everything installed into one directory (as usual in Hunter), there is no private/Eigen directory.

Ah, yes, you're right, Eigen should be public then.
But I don't understand how the GIT_SELF feature solves the problem.
I would include Eigen using hunter_add_package(Eigen) and find_package(Eigen3).
But when I do make install all files form MyLib getting installed, but Eigen's not.

I would include Eigen using hunter_add_package(Eigen) and find_package(Eigen3).
But when I do make install all files form MyLib getting installed, but Eigen's not.

With GIT_SELF you're packing and installing MyLib to the same place where Eigen3 installed, i.e. there should be hunter_add_package(MyLib) somewhere. In this case both Eigen3 and MyLib installed to the same folder (internal Hunter root directory). Since GIT_SELF introduce new package MyLib then Config-ID will be new too, hence there is no other third parties in Hunter internal install directory.
Probably it's easier to try it first than explain:

https://docs.hunter.sh/en/latest/user-guides/hunter-user/git-self.html

GIT_SELF seems an excellent solution when the project is a library. However, for typical packages that deliver a few executables, a few dynamically loaded libraries with late-loaded plugins and some runtime files, it's important that packages can both install themselves to HUNTER_ROOT as well as to a final CMAKE_INSTALL_PREFIX.
At some point you need to create a .zip archive, bundle, Debian package or Windows installer.
Perhaps hunterized packages should define both an install 'target' (to $HUNTER_ROOT/_Base/x/y/z/Install) as well a a 'deploy' target to an arbitrary prefix, so that whole dependency hierarchies incl. run time files can be deployed without having to implement deployment for everything from top level. It's the packages that know best what run time support they need installed after all.
I really don't want to cheat the way eg. qt-camera does by finding gstreamer plugins based on a QT_ROOT variable, and hacking together globs and copies.

At some point you need to create a .zip archive, bundle, Debian package or Windows installer.

For Windows installer or macOS bundle, you should use fixup_bundle. As for other package managers I don't think Hunter should be used there, see:

https://docs.hunter.sh/en/latest/overview/compatibility.html
https://docs.hunter.sh/en/latest/faq/interaction-with-other-package-managers.html


supportingScriptUris download fails if there is a redirect

The deploymentscript.sh bootstrap should use -L in curl to follow redirects when downloading supporting artifacts.
Trying to use the download latest URL redirect for github, you just end up with the redirect page body being downloaded...
You are being redirected.

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

ID: b5c4c8c5-7757-a969-5800-17f2f2312649
Version Independent ID: 9ced8dd5-43ca-6d1f-c054-842299db8327
Content: Use deployment scripts in templates - Azure Resource Manager
Content Source: articles/azure-resource-manager/templates/deployment-script-template.md
Service: azure-resource-manager
Sub-service: templates
GitHub Login: @mumian
Microsoft Alias: jgao

@wpbrown Thanks for your comment! We will review and provide an update as appropriate.

Tagging @tfitzmac and @mumian for insights.


Documented manifest parameters are not correct as per actual Manifest schema.

Documented manifest parameters are not correct as per actual Manifest schema.

We have documented like: Set composeExtension.Type to apiBased.

But actual generated manifest parameters are different (Using toolkit generated code):

composeExtension.Type => composeExtensionType
composeExtension.apiSpecificationFile => composeExtensions.apiSpecificationFile

parameter.name => parameters.name
composeExtension.command.apiResponseRenderingTemplateFile => composeExtensions.commands.apiResponseRenderingTemplateFile

Specified sample creation steps using toolkit is also not working and getting errors;
Could not read source map for https://staticsint.teams.cdn.office.net/teams-modular-packages/hashed-assets/services-bots-platform-61b8a29496ca7703.js: Unexpected 503 response from https://local.teams.office.com/sourcemaps/hashed-assets/services-bots-platform-61b8a29496ca7703.js.map: getaddrinfo ENOENT local.teams.office.com
["resolverUncaughtErrorBoundary__doNotAssignToGraphQLTeam: Uncaught error in a GraphQL resolver for operation ComponentsMessageExtensionFlyoutSearchMessageExtensionQuery, at field selection path: searchMessageExtension"]
?agent=web&version=23102623000꞉1:4339:98
2023-11-05T13:29:01.040Z FeedSyncService: preloadFeedsProfilePictures: Failed to fetch Image
0.2-angular-jquery.min-14969ec.js:114
4
["resolverUncaughtErrorBoundary__doNotAssignToGraphQLTeam: Uncaught error in a GraphQL resolver for operation ComponentsMessageExtensionFlyoutSearchMessageExtensionQuery, at field selection path: searchMessageExtension"]

Kindly add all the required steps to execute it properly.

Not able to see the option in VS Code to create API based ME until we switch to pre-release version of Teams toolkit and it is not mentioned in the documentation as well:

Please verify and update the documentation.

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

ID: 1455fcc8-8370-33f9-7e40-643261d98d87
Version Independent ID: 1455fcc8-8370-33f9-7e40-643261d98d87
Content: Build API-based message extension - Teams
Content Source: msteams-platform/messaging-extensions/build-api-based-message-extension.md
Service: msteams
GitHub Login: @v-ypalikila
Microsoft Alias: anclear

Hi @surbhigupta12 - Could you please help here?


Run parallel tasks for specific members

Features Description
I have come a across a use case regarding watching file changes in several crates in a project, which I want to watch separately and perform different flows of actions separate of each other. I would also like to start these watchers from a workspace root task, in parallel, so that I can watch these crate changes at the same time in one window. So my project structure looks roughly something like this:
$PROJECT_ROOT/Makefile.toml
$PROJECT_ROOT/src/frontend/Makefile.toml
$PROJECT_ROOT/src/backend/Makefile.toml

frontend and backend have separate flows defining the watch behavior needed for their code. I have found a way to create a workspace flow that combines these crate flows into one execution line:
$PROJECT_ROOT/Makefile.toml
[tasks.watch-flow]
description = "Watch all project files, and recompile and rerun the project on change."
workspace = false
clear = true
run_task = { name = [
    "watch-frontend",
    "watch-backend"
], fork = true, parallel = true }

$PROJECT_ROOT/src/frontend/Makefile.toml
[tasks.watch-frontend]
description = "Watch frontend files and recompile the project on change."
run_task = { name = ["build", "refresh-browser"] }
watch = true

[tasks.watch-backend]
# No op

$PROJECT_ROOT/src/backend/Makefile.toml
[tasks.watch-backend]
description = "Watch backend files and rerun the project on change."
command = "cargo"
args = ["run"]
watch = true

[tasks.watch-frontend]
# No op

This works, but it would be nice if I could make this work without defining the watch-backend and watch-frontend no op tasks in the respective crates.
Describe the solution you'd like
I am looking for a way to point to a specific member of the workspace for which to perform a specific task, and at the same time run them in parallel. A code example for this could look like the following:
$PROJECT_ROOT/Makefile.toml
[tasks.watch-flow]
description = "Watch all project files, and recompile and rerun the project on change."
workspace = false
clear = true
run_task = { tasks = [
  { name = "watch", member = "frontend" },
  { name = "watch", member = "backend" }
], fork = true, parallel = true }

$PROJECT_ROOT/src/frontend/Makefile.toml
[tasks.watch]
description = "Watch frontend files and recompile the project on change."
run_task = { name = ["build", "refresh-browser"] }
watch = true

$PROJECT_ROOT/src/backend/Makefile.toml
[tasks.watch]
description = "Watch backend files and rerun the project on change."
command = "cargo"
args = ["run"]
watch = true

An alternative would be to make run_task = { name = "watch", fork = true, parallel = true } be interpreted as start the watch task in each member in parallel. Right now only the first member gets a chance to start the task, while the other crates are starved.

Let me think what can be done to simplify this use case without adding too much complexity to the run_task definition.

Hi @lidin I've been thinking about this for a while.
run_task supports many features (i just added cleanup_task as well) and it is becoming too complex.
i prefer not to have that attribute be also workspace aware and such.
i know you have a hacky solution that you are not a fan of, but parallel right now means running tasks from the list in parallel and not members in parallel. making it member aware, makes the whole parallel feature very unreadable and unpredictable.
another workaround to that, is to use duckscript, for example:
[tasks.watch-flow]
description = "Watch all project files, and recompile and rerun the project on change."
workspace = false
clear = true
script = [
'''
#!@duckscript

fn run_watch
  cd ./$1
  spawn cargo make watch
  cd ..
end

run_watch frontend
run_watch backend
'''
]

but it's not a great hack either.

Hi, @sagiegurari. Thank you for putting out the time to think about this. I totally agree that adding more complexity to the run_task feature is probably not a good idea. I will make do with the solution for now, and think about it a bit more, to see if there is a better way to do this. :) I’ll close this issue for now.


Support to run This script in Mac

I tried to create this scripts in MAC and the credentials file it created has -e in it. Similarly other shell scripts also have issue with Mac. Please add support for running these scripts on other OS as well.
https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/266aca031d86ca024084cb20e51bdfd1da549c4e/setup-tools

example problematic credentials file generated on mac
snowball_creds
-e [<IP_ADDRESS>]
aws_access_key_id = <access key id>
aws_secret_access_key = <secret key>
region = snow

A good credentials file should be
[<IP_ADDRESS>]
aws_access_key_id = <access key id>
aws_secret_access_key = <secret key>
region = snow

fixed with pr https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/pull/22


Hello @Satwikloka the original documentation has been updated and has resulted in some conflicts. Can you update your fork and try creating a PR AGain?

Hi @amanintech I have update index.mdx file to older version which is creating conflict for my PR.
Kindly authorize the deployment from your end " Vercel — Authorization required to deploy".


console.log(poolOpenTime > runTimestamp) is always false.

Script doesn't buy at my end because poolOpentime is always less than runtimestamp
console.log(poolOpenTime > runTimestamp);

Did you ever figure this out? I'm having the same issue, waited for over 6 hours and nothing. I have another hacky script that monitors new raydium pools and picks up pools every 5 minutes or so


TypeError

I am using Vue 3 with Quasar and following the documentation but I am running into an error.
TypeError: this._data.aliases.hasOwnProperty is not a function
Any suggenstions?

@TanyaKulikovskaya Could you provide a code example that reproduces the error?
Something similar to this, good to also specify library versions you are using.


failing to build 0.9.1

Hello!
I am not able to build xrdp in ubuntu xenial. configure fails with:
checking for IceConnectionNumber in -lICE... yes
checking for X11/extensions/Xfixes.h... yes
checking for X11/extensions/Xrandr.h... no
configure: error: please install libxrandr-dev or libXrandr-devel

so i did:
root@ubuntu-desktop:~/xrdp# apt-file search X11/extensions/Xrandr.h
libxrandr-dev: /usr/include/X11/extensions/Xrandr.h
root@ubuntu-desktop:~/xrdp# apt install libxrandr-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
»libxrandr-dev« ist bereits die neuste Version (2:1.5.0-1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.

so it tells me it is allready latest.
So i installed the latest libxrandr from http://packages.ubuntu.com/zesty/libxrandr-dev
with the same result.
the build o matic is doing the same errors and xenial buildin 0.6.1-2 is also broken.
Whats on here ?
EDIT:
I installed a ready made deb from here:
http://packages.ubuntu.com/zesty/xrdp
http://packages.ubuntu.com/zesty/xorgxrdp
installs and starts okay. Maybe this helps someone in the furute.
Anyhow xrdp isnt working with xorg or x11vnc.
xrdp.log:
[20161230-19:58:02] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 59924
[20161230-19:58:02] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20161230-19:58:02] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20161230-19:58:02] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20161230-19:58:02] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20161230-19:58:02] [DEBUG] Security layer: requested 11, selected 1
[20161230-19:58:02] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20161230-19:58:02] [ERROR] Listening socket is in wrong state, terminating listener
[20161230-19:58:02] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 59925
[20161230-19:58:02] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20161230-19:58:02] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20161230-19:58:02] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20161230-19:58:02] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20161230-19:58:02] [DEBUG] Security layer: requested 11, selected 1
[20161230-19:58:03] [DEBUG] xrdp_00004daf_wm_login_mode_event_00000001
[20161230-19:58:03] [INFO ] Loading keymap file /etc/xrdp/km-00000407.ini
[20161230-19:58:03] [WARN ] local keymap file for 0x00000407 found and doesn't match built in keymap, using local keymap file
[20161230-19:58:23] [DEBUG] xrdp_wm_log_msg: connecting to sesman ip <IP_ADDRESS> port 3350
[20161230-19:58:23] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20161230-19:58:23] [DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait...
[20161230-19:58:23] [DEBUG] return value from xrdp_mm_connect 0
[20161230-19:58:23] [INFO ] xrdp_wm_log_msg: login successful for display 10
[20161230-19:58:23] [DEBUG] xrdp_wm_log_msg: started connecting
[20161230-19:58:27] [DEBUG] Closed socket 19 (AF_UNIX)
[20161230-19:58:30] [DEBUG] Closed socket 19 (AF_UNIX)
[20161230-19:58:34] [DEBUG] Closed socket 19 (AF_UNIX)
[20161230-19:58:38] [DEBUG] Closed socket 19 (AF_UNIX)
[20161230-19:58:41] [DEBUG] Closed socket 19 (AF_UNIX)
[20161230-19:58:45] [DEBUG] Closed socket 19 (AF_UNIX)
[20161230-19:58:48] [DEBUG] Closed socket 19 (AF_UNIX)

sesman.log:
[20161230-20:00:03] [INFO ] A connection received from ::1 port 56168
[20161230-20:00:04] [INFO ] ++ created session (access granted): username derdigge, ip <IP_ADDRESS>:59941 - socket: 12
[20161230-20:00:04] [INFO ] starting Xorg session...
[20161230-20:00:04] [DEBUG] Closed socket 9 (AF_INET6 :: port 5910)
[20161230-20:00:04] [DEBUG] Closed socket 9 (AF_INET6 :: port 6010)
[20161230-20:00:04] [DEBUG] Closed socket 9 (AF_INET6 :: port 6210)
[20161230-20:00:04] [DEBUG] Closed socket 7 (AF_INET6 ::1 port 3350)
[20161230-20:00:04] [DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
[20161230-20:00:04] [INFO ] Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp
[20161230-20:00:14] [ERROR] X server for display 10 startup timeout
[20161230-20:00:14] [INFO ] starting xrdp-sessvc - xpid=19921 - wmpid=19920
[20161230-20:00:14] [ERROR] X server for display 10 startup timeout
[20161230-20:00:14] [ERROR] another Xserver might already be active on display 10 - see log
[20161230-20:00:14] [DEBUG] aborting connection...
[20161230-20:00:14] [INFO ] ++ terminated session:  username derdigge, display :10.0, session_pid 19919, ip <IP_ADDRESS>:59941 - socket: 12

next i tried to launch a log on my own by modifiing pram(s) in sesman.ini an tried like
[20161230-20:32:29] [INFO ] A connection received from ::1 port 56216
[20161230-20:32:30] [INFO ] ++ created session (access granted): username derdigge, ip <IP_ADDRESS>:60391 - socket: 12
[20161230-20:32:30] [INFO ] starting Xorg session...
[20161230-20:32:30] [DEBUG] Closed socket 9 (AF_INET6 :: port 5910)
[20161230-20:32:30] [DEBUG] Closed socket 9 (AF_INET6 :: port 6010)
[20161230-20:32:30] [DEBUG] Closed socket 9 (AF_INET6 :: port 6210)
[20161230-20:32:30] [DEBUG] Closed socket 7 (AF_INET6 ::1 port 3350)
[20161230-20:32:30] [DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
[20161230-20:32:30] [INFO ] Xorg :10 -auth .Xauthority -config /etc/X11/xrdp/xorg.conf -noreset -nolisten tcp -logfile /var/log/xrdp_X10.log
[20161230-20:32:40] [ERROR] X server for display 10 startup timeout
[20161230-20:32:40] [INFO ] starting xrdp-sessvc - xpid=22413 - wmpid=22412
[20161230-20:32:40] [ERROR] X server for display 10 startup timeout
[20161230-20:32:40] [ERROR] another Xserver might already be active on display 10 - see log
[20161230-20:32:40] [DEBUG] aborting connection...
[20161230-20:32:40] [INFO ] ++ terminated session:  username derdigge, display :10.0, session_pid 22411, ip <IP_ADDRESS>:60391 - socket: 12

/var/log/xrdp_X10.log gets not created. Something is wrong with the "sesmen starts xorg" mechanics. I do not know enough about how sesman is doing stuff so please help.
any other thoughts?

I actually compiled the current devel branch on Ubuntu 16.04 some time ago (around the 0.9.1 release), and it worked correctly for me. Could you check config.log for details of the failure to find X11/extensions/Xrandr.h?
You are using a non-standard location for the Xorg log. It may not have permission to write the log. The standard configuration files would tell Xorg to use your home directory.
I believe Xvnc has issues with IPv6 support. I haven't had a chance to look deeper into that.

you can follow the wiki page https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian-8 on ubuntu, I took it exactly to build on ubuntu today for a 16.10. I can have a look again for xenial if needed.
0.6 as you wrote, isn't supported anymore better have a stable release as 0.9.1 I don't know the version for RDP-O-Matic.

@moobyfr
Thanks. the default link in the wiki points to Debian 6. Build didnt work for me with this one, dont know why anymore.  Maybe you want to change that link for others to come.

I tried and could not reproduce the issue. I launched an Ubuntu 16.04.1 instance on AWS and compiled xrdp-0.9.1 from the actual release tarball without any issues.

okay. i did a local KVM and compiling wents fine now on Ubuntu-Gnome. I fixed wrong path and $vars in the wiki here https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian-8
Anyhow. On a Clean install it is leading into the thame errors. Something is misfiged by default?
Here my logs.
session type x11rdp:
[20161231-10:58:04] [INFO ] A connection received from <IP_ADDRESS> port 44932
[20161231-10:58:05] [INFO ] ++ created session (access granted): username derdigge, ip <IP_ADDRESS>:65082 - socket: 12
[20161231-10:58:05] [INFO ] starting X11rdp session...
[20161231-10:58:05] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:5910)
[20161231-10:58:05] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:6010)
[20161231-10:58:05] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:6210)
[20161231-10:58:05] [DEBUG] Closed socket 8 (AF_INET <IP_ADDRESS>:3350)
[20161231-10:58:05] [DEBUG] Closed socket 7 (AF_INET <IP_ADDRESS>:3350)
[20161231-10:58:05] [INFO ] X11rdp :10 -auth .Xauthority -geometry 1920x1080 -depth 24 -bs -nolisten tcp -uds
[20161231-10:58:05] [CORE ] error starting X server - user derdigge - pid 16390
[20161231-10:58:05] [DEBUG] errno: 2, description: No such file or directory
[20161231-10:58:05] [DEBUG] execve parameter list size: 13
[20161231-10:58:05] [DEBUG]         argv[0] = X11rdp
[20161231-10:58:05] [DEBUG]         argv[1] = :10
[20161231-10:58:05] [DEBUG]         argv[2] = -auth
[20161231-10:58:05] [DEBUG]         argv[3] = .Xauthority
[20161231-10:58:05] [DEBUG]         argv[4] = -geometry
[20161231-10:58:05] [DEBUG]         argv[5] = 1920x1080
[20161231-10:58:05] [DEBUG]         argv[6] = -depth
[20161231-10:58:05] [DEBUG]         argv[7] = 24
[20161231-10:58:05] [DEBUG]         argv[8] = -bs
[20161231-10:58:05] [DEBUG]         argv[9] = -nolisten
[20161231-10:58:05] [DEBUG]         argv[10] = tcp
[20161231-10:58:05] [DEBUG]         argv[11] = -uds
[20161231-10:58:05] [DEBUG]         argv[12] = (null)
[20161231-10:58:15] [ERROR] X server for display 10 startup timeout
[20161231-10:58:15] [INFO ] starting xrdp-sessvc - xpid=16390 - wmpid=16389
[20161231-10:58:15] [ERROR] X server for display 10 startup timeout
[20161231-10:58:15] [ERROR] another Xserver might already be active on display 10 - see log
[20161231-10:58:15] [DEBUG] aborting connection...
[20161231-10:58:15] [INFO ] ++ terminated session:  username derdigge, display :10.0, session_pid 16388, ip <IP_ADDRESS>:65082 - socket: 12

No such file or directory? Yeah but what is he looking for? If we find out i would add that one to the wiki page.
session type Xorg:
[20161231-11:00:19] [INFO ] A connection received from <IP_ADDRESS> port 44934
[20161231-11:00:19] [INFO ] ++ created session (access granted): username derdigge, ip <IP_ADDRESS>:65124 - socket: 12
[20161231-11:00:19] [INFO ] starting Xorg session...
[20161231-11:00:19] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:5910)
[20161231-11:00:19] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:6010)
[20161231-11:00:19] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:6210)
[20161231-11:00:19] [DEBUG] Closed socket 7 (AF_INET <IP_ADDRESS>:3350)
[20161231-11:00:19] [DEBUG] Closed socket 8 (AF_INET <IP_ADDRESS>:3350)
[20161231-11:00:19] [INFO ] Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
[20161231-11:00:29] [ERROR] X server for display 10 startup timeout
[20161231-11:00:29] [INFO ] starting xrdp-sessvc - xpid=16403 - wmpid=16402
[20161231-11:00:29] [ERROR] X server for display 10 startup timeout
[20161231-11:00:29] [ERROR] another Xserver might already be active on display 10 - see log
[20161231-11:00:29] [DEBUG] aborting connection...
[20161231-11:00:29] [INFO ] ++ terminated session:  username derdigge, display :10.0, session_pid 16401, ip <IP_ADDRESS>:65124 - socket: 12

Same error as above. Where is this logfile stored? i cant find it.
root@Desktop:/var/log# find / | grep 'xorgxrdp'
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/lib/xorg/modules/libxorgxrdp.la
/usr/lib/xorg/modules/libxorgxrdp.a
/usr/lib/xorg/modules/libxorgxrdp.so

is still cannot start Xorg with Xorg session and there is a mystic "file not found" The loglevel is on debug i prupose to make that level more verbose to tell me what it is trying to find.

There are several backend for Xrdp: X11rdp, Xorg and Xvnc. X11rdp isn't installed by default, you'll have to build it . Xorg is the preferred backend to use.
If you are using ubuntu, you have probably hit another bug: bug #598

@moobyfr
lets see i build x11rdp now. But why is Xorg session not working? Xorg is definitly there :)

Building of X11R7.8 fails. dieing:
make[4]: Entering directory '/root/git/neutrinolabs/xrdp-0.9.1/xorg/X11R7.6/build_dir/xorg-server-1.9.3/hw/xfree86/loader'
CPP='gcc -E' AWK='mawk' ./sdksyms.sh ../../.. -DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -Wbad-function-cast -Wformat=2  -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/usr/local/include -I/usr/local/include/pixman-1 -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include -I../../../include -I../../../include -I../../../Xext -I../../../composite -I../../../damageext -I../../../xfixes -I../../../Xi -I../../../mi -I../../../miext/shadow  -I../../../miext/damage -I../../../render -I../../../randr -I../../../fb -fvisibility=hidden -DHAVE_XORG_CONFIG_H -fvisibility=hidden -I/usr/local/include -DXF86PM -I/usr/local/include -I/usr/local/include -fPIC -O2 -I../../../hw/xfree86 -I../../../hw/xfree86/include -I../../../hw/xfree86/common -I../../../hw/xfree86/os-support -I../../../hw/xfree86/os-support/bus -I../../../os -I./../parser -I../../../miext/cw -I./../ddc -I./../i2c -I./../modes -I./../ramdac
  CC     loader.lo
  CC     loadext.lo
  CC     loadmod.lo
  CC     dlloader.lo
loadmod.c: In function ‘FreeSubdirs’:
loadmod.c:378:11: warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
      free(*s);
           ^
In file included from ../../../include/misc.h:142:0,
                 from ../../../include/os.h:52,
                 from loadmod.c:53:
/usr/include/stdlib.h:483:13: note: expected ‘void *’ but argument is of type ‘const char *’
 extern void free (void *__ptr) __THROW;
             ^
  CC     os.lo
  CC     sdksyms.lo
sdksyms.c:323:15: error: expected expression before ‘,’ token
     (void *) &,
               ^
Makefile:512: recipe for target 'sdksyms.lo' failed
make[4]: *** [sdksyms.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory '/root/git/neutrinolabs/xrdp-0.9.1/xorg/X11R7.6/build_dir/xorg-server-1.9.3/hw/xfree86/loader'
Makefile:700: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/root/git/neutrinolabs/xrdp-0.9.1/xorg/X11R7.6/build_dir/xorg-server-1.9.3/hw/xfree86'
Makefile:562: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/root/git/neutrinolabs/xrdp-0.9.1/xorg/X11R7.6/build_dir/xorg-server-1.9.3/hw/xfree86'
Makefile:486: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/root/git/neutrinolabs/xrdp-0.9.1/xorg/X11R7.6/build_dir/xorg-server-1.9.3/hw'
Makefile:624: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
make: Leaving directory '/root/git/neutrinolabs/xrdp-0.9.1/xorg/X11R7.6/build_dir/xorg-server-1.9.3'

it is related  to xfree loader. I saw your posting in the wiki.
"If you don't want to use the xorgxrdp module, you can still build a local Xserver dedicated to xrdp:"
how do i use xorgxrdp as it is allready installed during compile process.

I am asking because your wiki is telling me here how it works:
https://github.com/neutrinolabs/xrdp/wiki/Compiling-and-using-xorgxrdp
which also fails to start X  :)
Dec 31 12:11:45 Desktop xrdp-sesman[3942]: (3942)(140502160410368)[CORE ] error starting X server - user derdigge - pid 3942
Sorry for bothering arround here but i am sure that many users simply give up at that point. It is a clean installation with straight forward implementation. Maybe it is working "on your machine" but a clean install did not work for most.

As I commented before:
If you are using ubuntu, you have probably hit another bug: bug #598
I use it on production on Debian for users, there is no problem. Ubuntu is another problem.

I looked at your error:
as the log is seing, your wrapper isn't executable.

It is known that X11rdp is hard to compile. It is a collection of 101 packages with different requirements and quirks. There is no master configure script for it that would check all dependencies in advance. Perhaps it should be added.
Apparently, sdksyms.c generation is failing for you. I'm trying to figure out why.

It is known that X11rdp is hard to compile. It is a collection of 101 packages with different requirements and quirks. There is no master configure script for it that would check all dependencies in advance. Perhaps it should be added.
Apparently, sdksyms.c generation is failing for you. I'm trying to figure out why.

@moobyfr
Thanks for your time an patience :)
missing to make it accesible was an accident but did not solve my issue. I enabled rootlogins for that kvm box in case there are "permission issues" without success. I still see a startup timeout. This is with /usr/bin/XorgXrdp from usage section of https://github.com/neutrinolabs/xrdp/wiki/Compiling-and-using-xorgxrdp
[20170101-14:27:32] [INFO ] A connection received from <IP_ADDRESS> port 60696
[20170101-14:27:32] [INFO ] ++ created session (access granted): username root, ip <IP_ADDRESS>:63506 - socket: 12
[20170101-14:27:32] [INFO ] starting Xorg session...
[20170101-14:27:32] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:5910)
[20170101-14:27:32] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:6010)
[20170101-14:27:32] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:6210)
[20170101-14:27:32] [DEBUG] Closed socket 8 (AF_INET <IP_ADDRESS>:3350)
[20170101-14:27:32] [DEBUG] Closed socket 7 (AF_INET <IP_ADDRESS>:3350)
[20170101-14:27:32] [INFO ] XorgXrdp :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
[20170101-14:27:42] [ERROR] X server for display 10 startup timeout
[20170101-14:27:42] [INFO ] starting xrdp-sessvc - xpid=1361 - wmpid=1360
[20170101-14:27:42] [ERROR] X server for display 10 startup timeout
[20170101-14:27:42] [ERROR] another Xserver might already be active on display 10 - see log
[20170101-14:27:42] [DEBUG] aborting connection...
[20170101-14:27:42] [INFO ] ++ terminated session:  username root, display :10.0, session_pid 1359, ip <IP_ADDRESS>:63506 - socket: 12

I do not have the enough Understanding of xorg to reproduce "setting suid to Xorg" like described in #598
I will install an Debian now in local KVM for testing.

@moobyfr
Thanks for your time an patience :)
missing to make it accesible was an accident but did not solve my issue. I enabled rootlogins for that kvm box in case there are "permission issues" without success. I still see a startup timeout. This is with /usr/bin/XorgXrdp from usage section of https://github.com/neutrinolabs/xrdp/wiki/Compiling-and-using-xorgxrdp
[20170101-14:27:32] [INFO ] A connection received from <IP_ADDRESS> port 60696
[20170101-14:27:32] [INFO ] ++ created session (access granted): username root, ip <IP_ADDRESS>:63506 - socket: 12
[20170101-14:27:32] [INFO ] starting Xorg session...
[20170101-14:27:32] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:5910)
[20170101-14:27:32] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:6010)
[20170101-14:27:32] [DEBUG] Closed socket 9 (AF_INET <IP_ADDRESS>:6210)
[20170101-14:27:32] [DEBUG] Closed socket 8 (AF_INET <IP_ADDRESS>:3350)
[20170101-14:27:32] [DEBUG] Closed socket 7 (AF_INET <IP_ADDRESS>:3350)
[20170101-14:27:32] [INFO ] XorgXrdp :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
[20170101-14:27:42] [ERROR] X server for display 10 startup timeout
[20170101-14:27:42] [INFO ] starting xrdp-sessvc - xpid=1361 - wmpid=1360
[20170101-14:27:42] [ERROR] X server for display 10 startup timeout
[20170101-14:27:42] [ERROR] another Xserver might already be active on display 10 - see log
[20170101-14:27:42] [DEBUG] aborting connection...
[20170101-14:27:42] [INFO ] ++ terminated session:  username root, display :10.0, session_pid 1359, ip <IP_ADDRESS>:63506 - socket: 12

I do not have the enough Understanding of xorg to reproduce "setting suid to Xorg" like described in #598
I will install an Debian now in local KVM for testing.

The original issue seems to be solved, closing.