Add ReportNameValuePairs key to Report Type

Details

Fixed Issues

$ https://github.com/Expensify/Expensify/issues/387236
PROPOSAL:
Tests

[ ] Verify that no errors appear in the JS console

Offline tests

QA Steps

[ ] Verify that no errors appear in the JS console

PR Author Checklist

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

[ ] I added steps for local testing in the Tests section
[ ] I added steps for the expected offline behavior in the Offline steps section
[ ] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] 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)
[ ] 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).

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

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

[ ] 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)
[ ] I followed proper code patterns (see Reviewing the code)

[ ] 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)
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] 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.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[ ] 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:

[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] 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.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I followed the guidelines as stated in the Review Guidelines
[ ] 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)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] 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
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] If any new file was added I verified that:

[ ] 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

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

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

[ ] 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.
[ ] 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)
[ ] 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.
[ ] 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.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

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

[ ] 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.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Hey @mountiny and @roryabraham, do you think you could take a look at this PR if you have a chance? I added the ReportNameKeys array to add some structure but I'm not sure iff there's a better way of doing it.

From a quick look it seems good to me, but definitely add the rNVP names to CONST

Ah okay, thanks @mountiny. What about what is there now? I did it that way to keep it consistent with the way the file is organized but it feels a little redundant. Because whenever we want to add a new key, we have to add it as keyName: "keyName". I think it would be easier to just add it as a list at the bottom. What do you think?
List at the bottom meaning:
Instead of
type ReportNameKeys = keyof typeof CONST.REPORT_NAME_KEYS;
Do
type ReportNameKeys = 'isArchived' | 'additionalKeys';

I think that it might look redundant now, but in future we will want to use those keys elsewhere and its better to keep them in keys

Cool agreed. But we can also do it like this:
type ReportNameKeys = 'isArchived' | 'additionalKeys';
but keep it in CONST right? Which will avoid the redundancy?

ah yeah we can do that too, although is there a case when new key would not be added to the keyName const you mentioned?

although is there a case when new key would not be added to the keyName const you mentioned?

I don't believe so right? If we need to pass the reportNameValuePair to App, then we'll add it and otherwise we won't?

If you did need a union of all rNVP names as a type (which, again, not sure you will), then you could do this:
type ReportNameValuePairs = Report['reportNameValuePairs'];
type ReportNameValuePairsNames = keyof Report['reportNameValuePairs'];

If you did need a runtime constant for all the rNVP names (which, again, not sure you will), then you could do this:
type KeysAsScreamingSnakeCase<T> = {
    [K in keyof T as ScreamingSnakeCase<K>]: K;
};

const REPORT_NVP_NAMES: KeysAsScreamingSnakeCase<Report['reportNameValuePairs']> = {
    IS_ARCHIVED: 'isArchived',
};

it might be possible to do this in reverse such that:

you define a runtime constant with all the keys
then define a type where the keys of that type are guaranteed to have all the values from the runtime constant

but I wasn't able to quickly figure out how to do that.

Doing this makes a lot of sense to me. It avoids redundancy, keeps everything in the same place, and allows for different types (you were right, not all of them are strings. I thought that when they got passed in from PHP they would be passed as strings but I'm wrong)
diff --git a/src/types/onyx/Report.ts b/src/types/onyx/Report.ts
index 7b9e7de3ca..8c05e4007d 100644
--- a/src/types/onyx/Report.ts
+++ b/src/types/onyx/Report.ts
@@ -186,6 +186,10 @@ type Report = OnyxCommon.OnyxValueWithOfflineFeedback<
         transactionThreadReportID?: string;

         fieldList?: Record<string, PolicyReportField>;
+
+        reportNameValuePairs?: {
+            isArchived: boolean;
+        };
     },
     PolicyReportField['fieldID']
 >;

And in that case, whenever we want to pass an Onyx Update to reportNameValuePairs, we would just send the whole object right? For example, in structureReportForOnyx in Auth, we would pass the whole reportNameValuePairs object and not only the fields we need. This is because we eventually will use most fields right?
But, we would only add to reportNameValuePairs in App whenever we use a new report name value pair. So since we're only using reportNameValuePairs.isArchived in App right now, that's the only one that would be there. Does that sound good?

@srikarparsi check out https://docs.google.com/document/d/1kubm8uFo2CTDfwB6_vhNL908cBN7qxDzNquIlfUW8S8/edit - we should do the same thing for reportNameValuePairs and move all logic that sends reportNameValuePairs to the front-end to a low level in Auth.

Just read through @iwiznia's design doc. Just to make sure I'm understanding correctly, is this what you're suggesting:
Currently, we send rNVP Onyx updates in two ways.

We send the update directly. This can be seen with updating a notification preference: 1 -> 2 -> 3
We send the update along with a bunch of other updates using structureReportForOnyx. This can be seen in OpenReport.

Is the suggestion to move only the 1st type of these rNVP Onyx Updates to a low level method like setNameValuePair? And then remove all the 1st type of rNVP Onyx Updates since these methods call setNameValuePair anyway to set the rNVP before sending the Onyx Update?

If that’s the case, what would be the best way to handle this so that it doesn’t block on CLOSED/ARCHIVED? I’m thinking we keep this App PR so that we begin storing the isArchived rNVP correctly. This way,  we won’t need to migrate it in the future. And then in the Auth, we send the isArchived Onyx update under reportNameValuePairs so that it’s stored correctly in App.
And in the meanwhile, I can work on a design doc for rNVP Onyx Updates similar to the one Ioni did for NVPs?

The idea is to always and only queue updates at the lowest level, so we don't have to queue updates everywhere and can forget about updates, since they are just handled automatically by the lower level methods. So all those you linked (and more) would be removed and instead would have just one call to queueOnyxUpdates in Report::setNameValuePair

Cool, that makes sense. So what I'm thinking is:

Deploy this PR to start using the right structure for rNVPs in the frontend (they should be nested in reportNameValuePairs so that Onyx Updates are 1:1 with the DB). Do this first so that it doesn't hold up Closed/Archived
Have Auth and Web send other rNVP Onyx Updates under the reportNameValuePairs key. Change App to look for these current rNVP Onyx Updates in the reportNameValuePairs field rather than accessing them directly. report.parentReportID vs report.reportNameValuePairs.parentReportID.
Change Auth to queue rNVP Onyx Updates directly in Report::setNameValuePair and remove occurrences of queuing them in other places since those places most likely call Report::setNameValuePair.

Does that sound good? I could also do a design doc for steps 2 and 3 similar to @iwiznia's for NVPs. But am not sure if I should do it while working on Separate Archived/Closed functionality or after.

Hey @hoangzinh, I don't believe we need a C+ review here but if anyone disagrees I can reassign.

I don't think we need a design doc if we just follow the pattern established by @iwiznia

@iwiznia do you think we should keep reportNameValuePairs under the ONYXKEYS.COLLECTION.REPORT key (i.e: as a field on each report in Onyx), or as a separate Onyx collection key, like ONYXKEYS.COLLECTION.REPORT_NVPS? I think keeping it under the report in the front-end makes some sense, but it's a bit less consistent with the DB.

@iwiznia do you think we should keep reportNameValuePairs under the ONYXKEYS.COLLECTION.REPORT key (i.e: as a field on each report in Onyx), or as a separate Onyx collection key, like ONYXKEYS.COLLECTION.REPORT_NVPS? I think keeping it under the report in the front-end makes some sense, but it's a bit less consistent with the DB.

Hmmmm not sure, probably outside? Pro is that is closer to the DB and that we would not have a report with just some keys in it, but has the downside that we would need to clear them separately if you lose access to the report for example.
Probably good to discuss in slack.

@srikarparsi have you started a discussion about this in Slack? I think we should get this up to larger audience so people can call out any concern they might have early. I think both works, but with its own key we will have to make sure we always push this update with null value as well, to clear the value out.
Having it all in report object could make this part less bug-prone as when we remove report from your local onyx, we dont have to worry about more collection than we already do (report, report actions to name some)

Hey Vit, yeah it's here: https://expensify.slack.com/archives/C03TQ48KC/p1714368363015469. Sorry, I forgot to tag you for some reason. I'm working on a deploy blocker right now but will do this right after.

Yupp, working on a PR to introduce the new ReportNameValuePairs type in App and should have that ready tomorrow.

I finished up most of it, just have to test a couple of things. I'm OOO until Wednesday for my friends' grad trip but I'll try to request a review on Monday or Tuesday.

Hey! This is ready for re-review. I also incorporated the isArchived changes (the reason we're creating this new Onyx structure) so that it would be easier to test. But please let me know if it would be better to move this to a separate PR, I wasn't sure.
But to test, I used this Web Branch which makes every OpenReport call push the reportNameValuePairs Onyx data with the isArchived key set. Then this App PR, replaces the composer with an archived banner if the isArchived value is true. I made sure that opening new reports, navigating away from them and then returning to them replaces the composer box with the archived banner.
Side note: We could probably use a useMemo to detect changes to the reportNameValuePairs (similar to how we do it for report) in ReportScreen but I wasn't sure how this would affect performance. I'll look into this more tomorrow but just wanted to request re-review since the core code for the ReportNameValuePairs Onyx structure is done.

What is the plan for all the rest of rNVPs?

I left a comment about it here. Does that sound good or am I missing anything? I can create issues for each rNVP and maybe we can add the Hot Pick label? Or I can work on it myself after finishing this Closed & Archived stuff.

Deploy this PR to start using the right structure for rNVPs in the frontend (they should be nested in reportNameValuePairs so that Onyx Updates are 1:1 with the DB). Do this first so that it doesn't hold up https://github.com/Expensify/Expensify/issues/373588
Have Auth and Web send other rNVP Onyx Updates under the reportNameValuePairs key. Change App to look for these current rNVP Onyx Updates in the reportNameValuePairs field rather than accessing them directly. report.parentReportID vs report.reportNameValuePairs.parentReportID.
Change Auth to queue rNVP Onyx Updates directly in Report::setNameValuePair and remove occurrences of queuing them in other places since those places most likely call Report::setNameValuePair.

I would actually amend this a bit, as follows:
Roll out (do these in order)

Deploy this PR to establish the new structure for rNVPs in the frontend (new key). Mark the old report fields as deprecated.
Update OpenApp / ReconnectApp (in Auth) to send all rNVP data to the new Onyx key
Change Auth to queue rNVP Onyx updates directly in Report::setNameValuePair
Update E/App to stop all usages of old rNVP data on the report object, always reference the new key.
Deprecate E/App versions that still rely on the old data format (fields on the Onyx report object)
Remove back-end occurrences of queuing updates to the old report fields

Reviewer Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

: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/roryabraham in version: 1.4.74-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

For migrating the other rNVPs, is there any preference between:

Create issues for each rNVP and add the Hot Pick label with instructions on migrating.
Work on it myself after finishing the Closed & Archived project.

@roryabraham @iwiznia

Both work for me, as long as we do it eventually 😄

🚀 Deployed to production by https://github.com/chiragsalian in version: 1.4.74-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Not able to do complete uninstall DBeaver

I am facing issue while completely uninstall the DBeaver.
Steps:

Installed DBeaver and Opened DBeaver
Selecting oracle project
Entering host name
Entering database name
Entering login credentials
Selecting Installed Oracle client
Test Connection
Uninstalling the DBeaver
Again installing the DBeaver
Still I am seeing the Oracle client in the dropdown even after uninstalling the values in the dropdown is not removed (Remove home is disabled in Native Client)
What should be procedure to remove the values from the dropdown while uninstalling and installing the DBeaver

By default all your settings, scripts, diagrams and other files are in %HOME%\.dbeaver4 folder.
You can delete it completely or remove just some configurations. For instance drivers configuration is in file .metadata\.plugins\org.jkiss.dbeaver.core\drivers.xml in .dbeaver4 folder.

Sorry, forgot about Oracle-specific home detection. DBeaver gets this configuration from Windows registry. It can;t be changed by uninstalling DBeaver.
BTW why do need to remove client home information?

Its having so many client homes and its confusing while selecting the client.
So In this case, Is there any possibilities to remove the client information for Native client?
If yes, Please let me know the procedure to do so.

Currently it is not possible to remove Oracle homes as they got from registry and PATH.


Try to use hashencoder but fail due to high memory usage

I tried to convert several categorical columns to hash-encoding features and the size of input data is 2.7 million, one column has 20K category. But the amount of memory will be up to 10G, it's a very strange situation. Why the encoder used so much memory?

How large in bytes is the dataset being passed in? If it's a pandas dataframe you can use df.info(memory_usage=True) to find out.
Also what are you using for n_components?

The dataset is just 170MB, I set the n_components as 500.

How many columns are there in the original dataset, and how many of those are being encoded with the HashingEncoder (by default it'd be all).

Closing this, feel free to re-open if you're still having issues.


await the promise and fix tests

Description
A few sentences describing the overall goals of the pull request's commits.
Related PRs
List related PRs if applicable
Todos

[x] Tests
[x] Documentation
[x] Link to Trello

 Cannot cancel orderbook orders


analytics backup ESA_2132

on hold as backup plan for analytics solutioning, saving as a pull request because scratch org was going to expire soon and it was a fair amount of work i'd rather not re-do.
Should be OK to merge to main instead of SAT-Sprint2 if sprint 2 closes before this is ready to resolve.

Merging PR for deployment with sprint 2.  Documentation in ticket with same number, but not required to be mentioned in release notes (non-impacting change)


Relax dependency constraints

In walden, owid-catalog and owid-datautils-py I relaxed the version constraints because the fixed upper bounds were causing issues.
In this PR I am doing the same on ETL but here I think more discussion is warranted. Are there libraries that we want to fix to a more narrow range for now? I could imagine pandas and numpy to be two good candidates for this.
I also bumped the vendor versions of walden and owid-catalog-py. These are now commits on branches - does this cause an issue when we merge? We should probably merge the changes in those repos first, then update this PR and merge it then when it can point to master of both submodules again.

When trying to import one dataset to Grapher I get a sqlalchemy.exc.NoForeignKeysError error. This is the same error that is raised by the CI / build (see logs).
This seems to be because of differences in newer versions of sqlmodel library. I tried setting the dependency on this library to sqlmodel = "^0.0.6" instead and seems to work.
Complete error logs:
✗ etl --only grapher://grapher/owid/latest/key_indicators --grapher
Detecting which steps need rebuilding...
OK (0s)
Running 1 steps:
1. grapher://grapher/owid/latest/key_indicators...
2022-12-27 19:30.02 [info     ] upsert_dataset.verify_namespace namespace=owid
2022-12-27 19:30:02,280 - [bugsnag] WARNING - No API key configured, couldn't notify
Traceback (most recent call last):
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/relationships.py", line 2749, in _determine_joins
    self.primaryjoin = join_condition(
  File "<string>", line 2, in join_condition
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/sql/selectable.py", line 1229, in _join_condition
    raise exc.NoForeignKeysError(
sqlalchemy.exc.NoForeignKeysError: Can't find any foreign key relationships between 'posts' and 'tag'.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/lucas/repos/etl/.venv/bin/etl", line 6, in <module>
    sys.exit(main_cli())
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/lucas/repos/etl/etl/command.py", line 119, in main_cli
    main(**kwargs)  # type: ignore
  File "/home/lucas/repos/etl/etl/command.py", line 147, in main
    run_dag(
  File "/home/lucas/repos/etl/etl/command.py", line 245, in run_dag
    time_taken = timed_run(lambda: step.run())
  File "/home/lucas/repos/etl/etl/command.py", line 252, in timed_run
    f()
  File "/home/lucas/repos/etl/etl/command.py", line 245, in <lambda>
    time_taken = timed_run(lambda: step.run())
  File "/home/lucas/repos/etl/etl/steps/__init__.py", line 602, in run
    dataset_upsert_results = upsert_dataset(
  File "/home/lucas/repos/etl/etl/grapher_import.py", line 94, in upsert_dataset
    ns = gm.Namespace(name=namespace, description="")
  File "<string>", line 4, in __init__
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/state.py", line 476, in _initialize_instance
    manager.dispatch.init(self, args, kwargs)
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/event/attr.py", line 334, in __call__
    fn(*args, **kw)
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/mapper.py", line 3672, in _event_on_init
    instrumenting_mapper._check_configure()
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/mapper.py", line 1924, in _check_configure
    _configure_registries({self.registry}, cascade=True)
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/mapper.py", line 3483, in _configure_registries
    _do_configure_registries(registries, cascade)
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/mapper.py", line 3522, in _do_configure_registries
    mapper._post_configure_properties()
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/mapper.py", line 1941, in _post_configure_properties
    prop.init()
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/interfaces.py", line 231, in init
    self.do_init()
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/relationships.py", line 2147, in do_init
    self._setup_join_conditions()
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/relationships.py", line 2243, in _setup_join_conditions
    self._join_condition = jc = JoinCondition(
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/relationships.py", line 2638, in __init__
    self._determine_joins()
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/orm/relationships.py", line 2771, in _determine_joins
    util.raise_(
  File "/home/lucas/repos/etl/.venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent/child tables on relationship Posts.tag - there are no foreign keys linking these tables.  Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.


Release 0.7: Miyu (codename)

Release name: ? (decided, not revealed yet)
Codename Kasumizawa "Miyu" from Blue Archive

[x] Rewrite Type

Simplified type
Increase type inference performance
Measured improvement speed by ~13x
[x] Lifecycle
[x] State & Decorate
[X] Model & Error
[x] Event
[x] Runtime
[x] End-to-end type safety
[x] Websocket
[x] test case

[X] Rewrite WebSocket

Strict validation for both runtime and type
Simplify Web Socket process
[x] Remove path mapping and use the compose function via hoisting instead
[x] Integrate with state and decorate fully type-safe
[x] Runtime
[x] test case (contributed by @bogeychan)

[X] Trace

Monitoring via life cycle and unit
Measure performance between life-cycle and sub-unit (array)
[x] .trace
[x] compose
[x] request, request.unit
[x] parse, parse.unit
[x] transform, transform.unit
[x] beforeHandle, beforeHandle.unit
[x] handle
[x] afterHandle, afterHandle.unit
[x] response, response.unit
[x] error, error.unit
[x] deciding to integrate throw catch error or not
[x] test case

[x] Reactive Cookie

Migrate cookie plugin to core without performance drop
Simplified Getter Setter #98
[x] get, set
[x] delete
[x] append
[x] signed, unsigned
[x] expire
[x] secret, rotation
[x] compose
[x] validation
[x] config
[x] test case

[X] Mapper Method & Affix #83

[x] affix
[x] prefix, suffix
[x] test case

[X] New Type

[x] Nullable
[x] MaybeEmpty

[x] Better Test Case and Coverage

Add more tests for better coverage
Improve contribution testing
[x] Core

[x] Module
[x] Handle Error

[x] Handler
[x] LifeCycle

[x] Request
[x] Parse
[x] Transform
[x] Before Handle
[x] After Handle
[x] Error
[x] Response

[x] Extends

[x] State
[x] Decorate
[x] Store
[x] Model

[x] AoT

[x] Static Code Analysis
[x] Dynamic Code Injection

[x] Validation

[x] body
[x] headers
[x] query
[x] params
[x] response
[x] cookie

[x] Path

[x] Group
[x] Guard
[x] Path

[x] Trace
[x] Units

[x] Map Response
[x] Map Early Response

[x] Lifecycle accepts multiple functions
[x] Route accepts multiple paths
[x] config.scope

[x] type
[x] unit test

[x] type-level unit test

87/87
Updating the doc

LGTM 👍
https://elysiajs.com/blog/elysia-07.html


Create 1.3.0 rc.2 release

@rlenglet: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@rlenglet: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-build
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@rlenglet: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-build
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build

prow/release-build-test-e2e-bookInfoTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-bookInfoTests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@rlenglet: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-build
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build

prow/release-build-test-e2e-bookInfoTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-bookInfoTests

prow/release-build-test-upgrade-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-upgrade-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@rlenglet: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-build
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build

prow/release-build-test-e2e-bookInfoTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-bookInfoTests

prow/release-build-test-upgrade-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-upgrade-tests

prow/release-build-test-istio-unit-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@rlenglet: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-build
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build

prow/release-build-test-e2e-bookInfoTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-bookInfoTests

prow/release-build-test-upgrade-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-upgrade-tests

prow/release-build-test-istio-unit-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-istio-unit-tests

prow/release-build-test-e2e-pilot-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-pilot-no_auth

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@rlenglet: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-build
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build

prow/release-build-test-e2e-bookInfoTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-bookInfoTests

prow/release-build-test-upgrade-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-upgrade-tests

prow/release-build-test-istio-unit-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-istio-unit-tests

prow/release-build-test-e2e-pilot-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-pilot-no_auth

prow/release-build-test-e2e-mixer-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-mixer-no_auth

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@rlenglet: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-build
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build

prow/release-build-test-e2e-bookInfoTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-bookInfoTests

prow/release-build-test-upgrade-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-upgrade-tests

prow/release-build-test-istio-unit-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-istio-unit-tests

prow/release-build-test-e2e-pilot-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-pilot-no_auth

prow/release-build-test-e2e-mixer-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-mixer-no_auth

prow/release-build-test-e2e-stackdriver
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-stackdriver

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@rlenglet: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-build
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build

prow/release-build-test-e2e-bookInfoTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-bookInfoTests

prow/release-build-test-upgrade-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-upgrade-tests

prow/release-build-test-istio-unit-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-istio-unit-tests

prow/release-build-test-e2e-pilot-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-pilot-no_auth

prow/release-build-test-e2e-mixer-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-mixer-no_auth

prow/release-build-test-e2e-stackdriver
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-stackdriver

prow/release-build-test-istioctl-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-istioctl-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@rlenglet: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-build
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build

prow/release-build-test-e2e-bookInfoTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-bookInfoTests

prow/release-build-test-upgrade-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-upgrade-tests

prow/release-build-test-istio-unit-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-istio-unit-tests

prow/release-build-test-e2e-pilot-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-pilot-no_auth

prow/release-build-test-e2e-mixer-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-mixer-no_auth

prow/release-build-test-e2e-stackdriver
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-stackdriver

prow/release-build-test-istioctl-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-istioctl-tests

prow/release-build-test-e2e-simpleTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-simpleTests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@rlenglet: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-build
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build

prow/release-build-test-e2e-bookInfoTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-bookInfoTests

prow/release-build-test-upgrade-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-upgrade-tests

prow/release-build-test-istio-unit-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-istio-unit-tests

prow/release-build-test-e2e-pilot-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-pilot-no_auth

prow/release-build-test-e2e-mixer-no_auth
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-mixer-no_auth

prow/release-build-test-e2e-stackdriver
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-stackdriver

prow/release-build-test-istioctl-tests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-istioctl-tests

prow/release-build-test-e2e-simpleTests
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-simpleTests

prow/release-build-test-e2e-dashboard
6353269f409a9f8e1578f598389466485fb3ec43
link
/test release-build-test-e2e-dashboard

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

weird.. do you need to rebase?

weird.. do you need to rebase?

I accidentally created the PR based on master. And the tests started before I had a chance to change the base branch to release-1.3. So this first batch of test runs has been failing. But it's ok now.


add CA root cert to proxy image

https://github.com/istio/istio/issues/6411
TODO - pilot side needs corresponding change

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: quanjielin
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: geeknoid
Assign the PR to them by writing /assign @geeknoid in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/cc @wattli @justinburke @JimmyCYJ

What is this ? Hardcoded cert ?

/hold

Removed the hold - fine to use it for testing / development, but please make sure this doesn't accidentally get merged into master.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: quanjielin, wattli
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [wattli]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


HDDS-1400. Convert all OM Key related operations to HA model.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
23
Docker mode activated.

_ Prechecks _

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

0
mvndep
51
Maven dependency ordering for branch

+1
mvninstall
1045
trunk passed

+1
compile
134
trunk passed

-0
checkstyle
33
The patch fails to run checkstyle in hadoop-ozone

+1
mvnsite
123
trunk passed

+1
shadedclient
819
branch has no errors when building and testing our client artifacts.

0
findbugs
0
Skipped patched modules with no Java source: hadoop-ozone/integration-test

+1
findbugs
105
trunk passed

+1
javadoc
84
trunk passed

_ Patch Compile Tests _

0
mvndep
14
Maven dependency ordering for patch

+1
mvninstall
105
the patch passed

+1
compile
105
the patch passed

+1
cc
105
the patch passed

+1
javac
105
the patch passed

-0
checkstyle
18
The patch fails to run checkstyle in hadoop-ozone

+1
mvnsite
84
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedclient
707
patch has no errors when building and testing our client artifacts.

0
findbugs
0
Skipped patched modules with no Java source: hadoop-ozone/integration-test

+1
findbugs
113
the patch passed

+1
javadoc
61
the patch passed

_ Other Tests _

+1
unit
33
common in the patch passed.

-1
unit
39
ozone-manager in the patch failed.

-1
unit
795
integration-test in the patch failed.

+1
asflicense
27
The patch does not generate ASF License warnings.

4524

Reason
Tests

Failed junit tests
hadoop.ozone.om.ratis.TestOzoneManagerStateMachine

hadoop.ozone.om.TestOmMetrics

hadoop.ozone.scm.TestAllocateContainer

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/hadoop-multibranch/job/PR-744/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/744

Optional Tests
dupname  asflicense  compile  javac  javadoc  mvninstall  mvnsite  unit  shadedclient  findbugs  checkstyle  cc

uname
Linux a56d541e649e 4.4.0-139-generic #165-Ubuntu SMP Wed Oct 24 10:58:50 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / 5583e1b

maven
version: Apache Maven 3.3.9

Default Java
1.8.0_191

checkstyle
https://builds.apache.org/job/hadoop-multibranch/job/PR-744/1/artifact/out//testptch/patchprocess/maven-branch-checkstyle-hadoop-ozone.txt

findbugs
v3.1.0-RC1

checkstyle
https://builds.apache.org/job/hadoop-multibranch/job/PR-744/1/artifact/out//testptch/patchprocess/maven-patch-checkstyle-hadoop-ozone.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-744/1/artifact/out/patch-unit-hadoop-ozone_ozone-manager.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-744/1/artifact/out/patch-unit-hadoop-ozone_integration-test.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-744/1/testReport/

Max. process+thread count
4608 (vs. ulimit of 5500)

modules
C: hadoop-ozone/common hadoop-ozone/ozone-manager hadoop-ozone/integration-test U: hadoop-ozone

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-744/1/console

Powered by
Apache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

Closing this. Code changes according to the new design are handled in HDDS-1638.


workflow Update update.yml

class NewFeatureFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return ComposeView(requireContext()).apply {
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
setContent {
NewFeatureScreen()
}
}
}
}

wrote access


Prevent downvoting zero karma comment

I do not think this works as intended: vote value should be the reverse of last action, rather than zero for undo votes.

When a visitor attempts to downvote a comment that has zero karma, it will simply log an error and return early: https://github.com/humanmade/comment-popularity/pull/115/files#diff-3a9980997cb73c1df4eb4b6fd05d169eR661


Content failed to be extracted

The contact section of  https://www.mozilla.org/en-US/privacy/ gets missed out

This is my code
        extract(             web_content,             include_formatting=True,             include_tables=True,             include_comments=False,             include_links=False,             output_format="xml",             favor_recall=True,             config=config,         )
What I've noticed is that the contact section is placed between a footer tag separate from the main footer.
Can anything be done besides ignoring footers all together?

As you say it is part of a footer so I would say it is too far-fetched to try to retrieve this kind of content.


[1.x] Catch up backports

Backports 9fe1c854b52976e6832adf33dd957ce976be4201 from #649
Backports eca2c989a695536c6b33450af34354dcd9fa4e95 from #639
Backports 97d51f4b176745defe9f11526fff22a45faf7e5f from #653
Backports<PHONE_NUMBER>6fd2af5144a6272ffc1adce4a90f3c from #650

Looks like DCO check is failing

Looks like DCO check is failing

Huh, how did it pass on #650 then?


gnuplot 5.0.6 missing or wrong libraries

On my system gnuplot fails to start complaining about wrong library versions:
dyld: Library not loaded: @rpath/libpng16.16.dylib

  Referenced from: /anaconda/bin/gnuplot

  Reason: Incompatible library version: gnuplot requires version 45.0.0 or later, but libpng16.16.dylib provides version 44.0.0
Abort trap: 6

or missing libraries e.g. is looking for libgd.3.dyld (I cannot paste the original error message)

can you add the output of conda list libpng?

Here you go:
# packages in environment at /anaconda:
#
libpng                    1.6.27                        0

I just checked on my mac - the gnuplot package seems to be ok, but it's important that all dependencies are installed from the conda-forge channel and not from the defaults channel.
In one of my older environments I had a problem that conda resolved the dependencies wrongly and pulled in cairo from the defaults channel. I solved the problem by first doing conda install cairo -c conda-forge followed by conda install gnuplot -c conda-forge.
Can you check that conda install gnuplot does not pull in dependencies from defaults?

Hi Christian,
thanks for your reply.
In fact Gnuplot from conda-forge (I'm trying to install 5.2.0 at the
moment) does pull a bunch of dependencies from the default channel. I tried
to solve this by removing the default channel (OT: by the way, I cannot
find the check box next to the channel name in Anaconda Navigator, then I
had to remove the default channel and now I'm trying to figure out how to
put it back again) but there is a conflict problem with the installed
anaconda package, requiring freetype 2.5.5 2.
Best,
N
2017-09-01 17:38 GMT+02:00 Christian Roth<EMAIL_ADDRESS>
I just checked on my mac - the gnuplot package seems to be ok, but it's
important that all dependencies are installed from the conda-forge channel
and not from the defaults channel.
In one of my older environments I had a problem that conda resolved the
dependencies wrongly and pulled in cairo from the defaults channel. I
solved the problem by first doing conda install cairo -c conda-forge
followed by conda install gnuplot -c conda-forge.
Can you check that conda install gnuplot does not pull in dependencies
from defaults?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/conda-forge/gnuplot-feedstock/issues/6#issuecomment-326613163,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AeE1-WAXj9nhnXB1yfufhFNhAZuOsVJlks5seCTigaJpZM4PJ8pe
.

Alright, I solved by creating a new blank environment without the anaconda package and installing Gnuplot 5.2.0 from conda-forge after deleting channel defaults.
BTW, is there a reason why condo-forge Gnuplot comes without the wxt terminal?
Do previous versions have wxt?
Finally is there a workaround to install in an environment where anaconda exists?

Alright, I solved by creating a new blank environment without the anaconda package and installing Gnuplot 5.2.0 from conda-forge after deleting channel defaults.

BTW, is there a reason why condo-forge Gnuplot comes without the wxt terminal?

When I started packaging gnuplot for bioconda I had no particular need for it, so I didn't spend the extra effort. Do you need it? If so, we can work on it.

Do previous versions have wxt?

At least not the ones I packaged (>5.0 in bioconda and conda-forge)

Finally is there a workaround to install in an environment where anaconda exists?

Depends - if the packages that depend on freetype 2.5.5 have a pendant in conda-forge and can be updated to conda-forge's version, it should work. If not you either have to package them or ask in conda-forge/staged-recipes for help with packaging.

I will close this due to inactivity.


Split column decoding into modules

Some repetition removed.
The monster column_data.rs is now split.
PLP decoding simplified, like a lot
TEXT and NTEXT column handling should be faster, we don't initialize a vector of zeroes before reading the data!

Also: faster.


Some errors  do not lead to application stop in editor

In current master branch some error are now labelled "SCRIPT ERROR:" and do not lead to stop in editor.
This leads to portions of scripts being silently skipped if user does not pay attention to console output.
Example:
SCRIPT ERROR: DNATool.create_common: Invalid call. Nonexistent 'Array' constructor.
   At: res://characters/dna_tool.gd:323.

Can you still reproduce this in 3.2.1?

I can't reproduce it in 3.2.3 RC 1:
func _ready():
	var badarr = Array(7)

Triggers:
SCRIPT ERROR: GDScript::reload: Parse Error: Invalid arguments for 'Array' constructor.
   At: res://Node2D3.gd:4.
ERROR: reload: Method failed. Returning: ERR_PARSE_ERROR
   At: modules/gdscript/gdscript.cpp:599.

and interruption of the game execution.


[Leaderboard] the model is not redirected to its provenance webpage...

Check https://gorilla.cs.berkeley.edu/leaderboard.html#leaderboard but found:

It does not redirect but it is in fact clickable...

Hey @zhimin-z this is now fixed. Thank you very much for flagging this!


Update apache-hadoop-connect-hive-jdbc-driver.md

scp script now copies curator jars to the client. The scp script also no longer looks for a specific version of the Hive JARs.

@msft-tacox : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@msft-tacox Thanks very much for working on this Taylor -- appreciate all of your hard work.

#sign-off

Fixes: https://github.com/MicrosoftDocs/azure-docs/issues/35404


Efficient encoder-decoder text generation wrapper

What does this PR do?
Current text generation returns all the logits back from IPU to host. However we only need the logits from the token to be generated. This wraps the model to return only what is necessary to improve the IO performance of the text generation.
Fixes # (issue)
Before submitting

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

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


fix Korean mistranslation of a word 'type'

Fixed Korean Mistration of a word 'Type'.
In Key Remapping of Keyboard Manger, 'Type' is currently translated "유형" in Korean which means "category" or "Pattern".
In this page, "Type" means 'please enter the key', so it is adequate to translate to "입력" which means 'input' or 'enter' in Korean.
I think this PR may make Korean users not be confused in Key Remapping page and I hope this PR makes your project better.
Thank you.

@caddyspoon Thanks for your contributions! But the localization needs to be fixed by the internal loc-team due to how the tools work. Please file a localization issue here for the loc team to triage. 😄

@caddyspoon I've filed an issue for this in #14406. Thanks again for your contributions!


Failed to save array of enums

Setup
Versions

rustc: 1.72.0
diesel: 2.1.3
diesel-async: 0.4.1
Postgres 15.4
MacOs

Feature Flags

diesel:: ["postgres", "chrono"]
diesel_async:: ["postgres", "deadpool", "async-connection-wrapper, "tokio"]

Problem Description
I'm trying to persist a list of enums on an object. I'm getting a confusing error that I don't understand.
Use following code:
use std::io::Write;

use anyhow::Result;
use diesel::deserialize;
use diesel::deserialize::FromSql;
use diesel::deserialize::FromSqlRow;
use diesel::expression::AsExpression;
use diesel::pg::Pg;
use diesel::pg::PgValue;
use diesel::prelude::*;
use diesel::serialize;
use diesel::serialize::IsNull;
use diesel::serialize::Output;
use diesel::serialize::ToSql;
use diesel_async::{AsyncConnection, AsyncPgConnection, RunQueryDsl, SimpleAsyncConnection};

pub mod postgres {
    pub mod schema {
        pub mod sql_types {
            #[derive(diesel::sql_types::SqlType)]
            #[diesel(postgres_type(name = "action"))]
            pub struct Action;
        }

        diesel::table! {
            use diesel::sql_types::*;
            use super::sql_types::Action;

            directory_actions (id) {
                id -> Int4,
                credentials_id -> Int4,
                #[max_length = 255]
                directory_path -> Varchar,
                actions -> Array<Nullable<Action>>,
            }
        }
    }
}

#[derive(Debug, FromSqlRow, AsExpression, Clone)]
#[diesel(sql_type = crate::postgres::schema::sql_types::Action)]
pub enum Action {
    Read,
    Write,
    Delete,
    List,
    Admin,
}

// Implement ToSql for the custom enum
impl ToSql<crate::postgres::schema::sql_types::Action, Pg> for Action {
    fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, Pg>) -> serialize::Result {
        match *self {
            Action::Read => out.write_all(b"read")?,
            Action::Write => out.write_all(b"write")?,
            Action::Delete => out.write_all(b"delete")?,
            Action::List => out.write_all(b"list")?,
            Action::Admin => out.write_all(b"admin")?,
        }
        Ok(IsNull::No)
    }
}

// Implement FromSql for the custom enum
impl FromSql<crate::postgres::schema::sql_types::Action, Pg> for Action {
    fn from_sql(bytes: PgValue) -> deserialize::Result<Self> {
        match bytes.as_bytes() {
            b"read" => Ok(Action::Read),
            b"write" => Ok(Action::Write),
            b"delete" => Ok(Action::Delete),
            b"list" => Ok(Action::List),
            b"admin" => Ok(Action::Admin),
            _ => Err("Unrecognized enum variant".into()),
        }
    }
}

#[derive(Debug, Identifiable, Queryable, Selectable, Insertable)]
#[diesel(table_name = crate::postgres::schema::directory_actions)]
#[diesel(check_for_backend(diesel::pg::Pg))]
pub struct DirectoryActions {
    pub id: i32,
    pub credentials_id: i32,
    pub directory_path: String,
    pub actions: Vec<Option<Action>>,
}

#[tokio::main]
async fn main() -> Result<()> {
    let mut conn =
        AsyncPgConnection::establish("postgres://localhost/diesel_test")
            .await
            .unwrap();

    conn.begin_test_transaction().await.unwrap();

    conn.batch_execute(
        "CREATE TYPE Action AS ENUM ('read', 'write', 'delete', 'list', 'admin');

CREATE TABLE
    directory_actions (
        id SERIAL PRIMARY KEY,
        credentials_id INTEGER  NOT NULL,
        directory_path VARCHAR(255) NOT NULL,
        actions Action[] NOT NULL check (actions <> '{}' and array_position(actions, null) is null)
    );",
    )
    .await
    .unwrap();

    let directory_actions = vec![DirectoryActions {
        id: 1,
        credentials_id: 1,
        directory_path: "".into(),
        actions: vec![Some(Action::Read)],
    }];

    diesel::insert_into(crate::postgres::schema::directory_actions::table)
        .values(&directory_actions)
        .execute(&mut conn)
        .await
        .unwrap();

    let res = crate::postgres::schema::directory_actions::table
        .select(DirectoryActions::as_select())
        .load(&mut conn)
        .await
        .unwrap();
    dbg!(res);

    Ok(())
}

Cargo.toml:

[dependencies]
tokio = { version = "1.32.0", features = ["full"] }
diesel = { version = "2.1.3", features = ["postgres", "chrono"] }
diesel-async = { version = "0.4.1", features = [
    "postgres",
    "deadpool",
    "async-connection-wrapper",
    "tokio"
] }
anyhow = "1.0"

What are you trying to accomplish?
Persist a list of enums
What is the expected output?
No error
What is the actual output?
thread 'main' panicked at src/main.rs:122:10:
called Result::unwrap() on an Err value: SerializationError(FailedToLookupTypeError(PgMetadataCacheKey { schema: None, type_name: "action" }))
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
Are you seeing any additional errors?
No

That's likely a duplicate of https://github.com/weiznich/diesel_async/issues/103

Closed as duplicate of #103


fix: use node18 by default

This is a pretty trash fix, but it works :)
fixes https://github.com/vjFaLk/frappe_codespace/issues/1

@ankush I haven't been maintaining this project, so thanks for the PR. Happy to merge in other things as well. I believe you made a working fork after I abandoned this project 🤣

I did it just for one event, idk somehow people found out and started using it.
I am not maintaining it either, but happy to resolve issues once in a while.


[Question] how to make a VM independent of images

I want to remove an image file as I only use it once for ain imported VM. makign the current Disk independent.
is there a way right now to do this?
this way Backups would be much easier to handle.

@ne0YT
Is this question the same as https://github.com/harvester/harvester/issues/4969? Or there is an different case?


Add option to include default typeRoots when overriding typeRoots

Search Terms
default typeRoots
Suggestion
By default, when typeRoots is unspecified, TypeScript looks for node_modules/@types in the project's directory and all ancestor directories, similar to Node's module resolution algorithm. This is covered in the tsconfig.json docs and is implemented here.
When specifying typeRoots in tsconfig.json, this overrides the default typeRoots entirely. You can include "node_modules/@types" in your typeRoots array, but that does not include ancestor directories.
This is a feature request to provide a way, such as a new option, to include the default type roots in addition to the overridden values.
Use Cases
The primary use case is within a repository using Yarn workspaces. Yarn hoists npm packages to the workspace root. This means you can end up with a directory hierarchy like this:
.
├── node_modules
│   └── @types
│       └── dependency
└── packages
    └── example
        ├── example.ts
        ├── package.json
        └── tsconfig.json

If tsconfig.json wants to include node_modules/@types in the workspace root (in addition to other type declaration directories specified in typeRoots), it needs to look like this:
{
  "compilerOptions": {
    "typeRoots": ["../../node_modules/@types", ...]
  }
}

Examples
This feature request is a quality-of-life improvement to instead allow for:
{
  "compilerOptions": {
    "typeRoots": [...],
    "includeDefaultTypeRoots": true
  }
}

The default value of this option would be false and would not be a breaking change.
Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

We need this exact same thing for the exact same reasons. I was looking for a way to say, "In addition to the normal @types folders resolution that Typescript does, please also add the following folders." There is no way to do this that I am aware of.

This would be useful for me as well. Specifically, if in addition to the default @types org I could specify and additional org to check.
I would like to include some custom global utility types in each of my typescript projects that extends a particular tsconfig. These global utility types would be available as an npm package at a path “@myorg/global-types”. I would include this package as a dev dependency. I would then configure the tsconfig typeroots to look first in “@myorg” then fallback to “@types”. I would then add “global-types” to the types array in the tsconfig and all would be well.
I’m also open to being educated if I’m missing something. Right now, I use my mono-repo to fake like my types are in @types even tho they are not. This works, but would break in the event that I used one of my packages (which are all git submodules) without the mono-repo surrounding it - which will eventually be a problem.

Another way to support this could be to add some kind of glob support to typeRoots, so you could write this:
{
  "compilerOptions": {
    "typeRoots": ["./node_modules/@types/**", ...]
  }
}

@dummdidumm it seems a bit over complicated... I have never seen that type of glob. But this PR could be quite easy, in the code, they are looking after each ancestor node_modules like the node behavior, just adding a condition here and modifying the config schema. "includeDefaultTypeRoots" is a bit long (but "allowSyntheticDefaultImports" too) so maybe "extendsTypeRoots" ?

This is now a much more serious issue with the introduction of Pnp.  Without this feature, there is no way to include additional typeRoots on top of the pnp roots without overriding them completely.

I have a fix for this on my fork, but I cannot PR it due to this issue not being on the backlog: https://github.com/jonrimmer/TypeScript/tree/include-default-type-roots-option
@RyanCavanaugh What feedback are you been waiting for on this issue?

Running into the same issue when we want to use a private NPM Types module in a Serverless mono-repo
https://stackoverflow.com/questions/66495073/automatically-import-typescript-namespace-from-namespace-type-only-npm-module-in

+1, I'm shipping a typescript source repository and it would be easier if I could specify the types it defines internally rather than needing to build + load the types separately

Bump.
@RyanCavanaugh - How can any of us be helpful here in moving this forward?

This would be a very helpful feature.

+1, This would really be useful.

@RyanCavanaugh Any updates on this?

nth-ing that this is a big problem when using yarn pnp in a monorepo.

Any news on this?

I would highly appreciate this feature too ...

same :+1:

same 👍

+1

+1

Can you please stop typing no value comments like "+1"? It certainly doesn't help the development process of this issue and you're sending useless notifications, emails to people who subscribed to this thread and waiting actually feedback.
Use 👍🏻 reaction instead.

For people who have this issue in Monorepo context, you can "put" your package in a @types organisation with something like this:
{
  "name": "@types/my-monorepo-global-types"
}

and it'll be picked up by typescript automatically without having to override the typeRoots option.

That's a fantastic idea @s0ber to avoid having to define typeRoots!
Pro tip: if you intend on applying these types globally in your monorepo, do not build the @types/my-monorepo-global-types package. Let the declaration files (*.d.ts) load from src itself - otherwise, you will bump into this problem: Cannot find type definition file for ... The file is in the program because: Entry point for implicit type library.
This is what I have in package.json:
{
  "name": "@types/my-monorepo-global-types",
  "main": "./src/index.d.ts",
  "types": "./src/index.d.ts"
}

And these are the contents of my src directory:
./src
├── assets.d.ts
├── index.d.ts
└── jazzicon.d.ts

I am trying to add custom Playwright matchers to a SvelteKit repo. The docs say to add global.d.ts using either typeRoots or include.
Using typeRoots will break resolution of every other type because of this issue. Because SvelteKit generates its own tsconfig in .svelte-kit/tsconfig.json and uses "extends": "./.svelte-kit/tsconfig.json" to include it, I can't use include without copying the include section from that file into the main tsconfig.json.
This means I somehow have to be aware when SvelteKit has changed what it generates so I can re-copy it. Brittle.
Why on earth, if tsconfig.json allows extends, does it not merge things rather than just clobbering them?
The solution from @s0ber is great for monorepo users, but not much use for anyone else. Please could we have a works-for-everyone fix for this?
(This would be so much easier if the config file was tsconfig.js and we could just use imports and the spread operator to get the original values rather than this extending mechanism — that way people could overwrite or merge as they want…)


📝Fixed typo in documentation - Body Fields page

📝 Docs preview for commit 88a7f70e8e7a18e3f832c80cda7361afedf71148 at: https://498ecef4.fastapitiangolo.pages.dev

📝 Docs preview for commit e8efce6c42d869b86d69d5593e4fa8534628d30e at: https://fa3aa86e.fastapitiangolo.pages.dev

📝 Docs preview for commit def1040299318bd640bff55bbd9344f78818e9ab at: https://ed4dd190.fastapitiangolo.pages.dev

Hi @ab-dauletkhan, it's not a typo error, it's intended to be that way. The original version is more accurate because it correctly describes the purpose of the description field. I think it's a misunderstanding with the field parameter title, used to customize the generated JSON schema (https://docs.pydantic.dev/latest/concepts/json_schema/#field-level-customization).
We'll close this one but thank you for the interest and effort! :smile_cat:


add --ignore_missing_core_models CLI flag to bypass checking for missing core models

What type of PR is this? (check all applicable)

[ ] Refactor
[X] Feature
[ ] Bug Fix
[ ] Optimization
[ ] Documentation Update
[ ] Community Node Submission

As per title - if InvokeAI won't start because you don't have some core conversion models installed, and you know you will not need them, you can pass --ignore_missing_core_models on startup and the check will be bypassed.

@lstein Need you to re-approve now that your requested changes have been addressed.


[Feature Request] onIndexChange prop for handling when the user swipes.

Just a use case that I ran into that I'm having to do myself that I thought some other people may benefit in, also passing the index into the dot/activeDot method would be nice in-case you wanted to render images for each dot. For example, images with numbers that showed the active slide, or thumbnails at the bottom as if it's a gallery.

Unless I'm misunderstanding, I think you can achieve this using onMomentumScrollEnd..
You can store the index of the slider (being passed in through the state onMomentumScrollEnd), in the state of your component. And then each time onMomentumScrollEnd is called, you can compare the new index to your stored index, and update your state / images etc. accordingly.

See #235

It will be nice if we can catch index when we are scrolling not only when we stop to scroll. If you scroll fast enough onMomentumScrollEnd event will not fire!


should clientv3.Client.Close method also close the Lease

see
https://github.com/coreos/etcd/blob/master/clientv3/client.go#L88
should this also close the Client.Lease, like
https://github.com/coreos/etcd/blob/master/clientv3/client.go#L90
thank you.

@heyitsanthony I have not saw any problems. I just view the source code and have a little problem about this.
thank you for you response.

@heyitsanthony @chanxuehong
So should we add lease.Close to make the code more readable?