Separated gestalt from NUI core code

Description
This pull request attempts to move all gestalt-using code out of the NUI core libraries (nui-input, nui-reflect and nui). It does this for additional portability to non-gestalt platforms, as well as to make it easier to support both gestalt-5 and gestalt-7 within the same branch. This should hopefully make it easier to maintain NUI, as it effectively combines the 1.0 and 2.0 branches together. This does introduce some breaking changes, however their effect on UI code should be minimal. This will require some changes in implementing engine code though.
The new nui-gestalt5 and nui-gestalt7 libraries contain the previously gestalt-specific code but I have not changed the packages at the moment for compatibility reasons. They are essentially copies of each other but for their respective gestalt versions. As the asset classes are not typically changed as frequenly as the UI widgets, keeping the nui-gestalt5 and nui-gestalt7 in sync should be mostly possible as a temporary measure.
I am not entirely sure about the ClassLibrary changes made here but I felt using potentially gestalt-specific patterns e.g. module urns as class look-up identifiers, was not suitably generic.
This is a potential solution to #43 and an alternative to #46. This does not preserve any unique 2.x commits though, as these changes are based on the considerably more up-to-date 1.x branch. I am not aware of any functional changes present in 2.x are not present in 1.x.
Summary of Changes

Removed all @API annotations from nui, nui-input and nui-reflect
Removed package-info.java files not containing package-level documentation
UISkin no longer inherits from Asset and no longer depends on UISkinData
UISkinData had been moved into nui-gestalt5/nui-gestalt7 for compatibility. It is now just a wrapper around a UISkin
UISkinAsset from nui-gestalt5/nui-gestalt7 is an asset containing a UISkin instance
Moved all gestalt-dependant classes into both nui-gestalt5 and nui-gestalt7
Refactored the ClassLibrary interface to be less gestalt-specific

Migration
Removed @API annotations
In order for modules to have access to NUI packages after these changes, you will need to add the relevant packages to the API package whitelist.
String[] NUI_PACKAGES = new String[]{
    "org.terasology.input",
    "org.terasology.input.device",
    "org.terasology.input.device.nulldevices",
    "org.terasology.nui",
    "org.terasology.nui.asset",
    "org.terasology.nui.asset.font",
    "org.terasology.nui.canvas",
    "org.terasology.nui.databinding",
    "org.terasology.nui.events",
    "org.terasology.nui.itemRendering",
    "org.terasology.nui.layouts",
    "org.terasology.nui.layouts.miglayout",
    "org.terasology.nui.layouts.relative",
    "org.terasology.nui.properties",
    "org.terasology.nui.reflection",
    "org.terasology.nui.skin",
    "org.terasology.nui.translate",
    "org.terasology.nui.util",
    "org.terasology.nui.widgets",
    "org.terasology.nui.widgets.treeView",
    "org.terasology.nui.widgets.types",
    "org.terasology.nui.widgets.types.builtin",
    "org.terasology.nui.widgets.types.builtin.object",
    "org.terasology.nui.widgets.types.builtin.util",
    "org.terasology.nui.widgets.types.math",
    "org.terasology.reflection", // TODO: Is this safe?
    "org.terasology.reflection.metadata", // TODO: Is this safe?
    "org.terasology.reflection.reflect", // TODO: Is this safe?
    "org.terasology.reflection.copy", // TODO: Is this safe?
};

for (String package : NUI_PACKAGES) {
    permissionFactory.getBasePermissionSet().addAPIPackage(package);
}

Moved gestalt-dependant classes into nui-gestalt5/nui-gestalt7
If using gestalt 5, then you should add a dependency on the nui-gestalt5 package e.g.
implementation 'org.terasology.nui:nui-gestalt5'

If using gestalt 7, then you should add a dependency on the nui-gestalt7 package e.g.
implementation 'org.terasology.nui:nui-gestalt7'

Refactored ClassLibrary to be less gestalt-specific
In most cases, if you were using AbstractClassLibrary, you should now use ModuleClassLibrary instead. ModuleClassLibrary is a re-named version of the former AbstractClassLibrary base class. If you used DefaultClassLibrary, then you should now use DefaultModuleClassLibrary instead. In the base ClassLibrary interface, all ResourceUrn parameters have been replaced with String parameters. This also applies to ClassMetadata. ResourceUrn method overloads
have been moved into ModuleClassLibrary.
UISkin no longer inherits from Asset and no longer depends on UISkinData
Whenever you were previously using UISkin as an asset type, you now use UISkinAsset instead e.g.
-  assetTypeManager.registerCoreAssetType(UISkin.class,
-        UISkin::new, "skins");
+  assetTypeManager.registerCoreAssetType(UISkinAsset.class,
+        UISkinAsset::new, "skins");

To obtain a UISkin instance from a UISkinAsset, call the UISKin.getSkin() method.
Notes

As an example of how this might affect existing UI code, you can see the changes I made to make this work with Terasology on my nui-gestalt-separation branch, specifically https://github.com/BenjaminAmos/Terasology/commit/36a8fb67475bd0e4a9c78284afe0bbb8167ed0a6. No changes were required in module code, apart from WordlyTooltip, which was not using the standard Assets.getSkin method.

Big fan overall! It enables Terasology to decouple these dependencies while upgrading, and it seems like it's a good thing for NUI too, as the API annotations weren't exactly for NUI's benefit.
Refactored ClassLibrary to be less gestalt-specific

I am not entirely sure about the ClassLibrary changes made here but I felt using potentially gestalt-specific patterns e.g. module urns as class look-up identifiers, was not suitably generic.

That touches on a subject I've been unclear about when reading over Terasology code of varying ages. There was SimpleUri which was replaced by ResourceUrn?
If, for NUI's use case, it just needs an identifier and it doesn't need to parse it in to parts, or compose a new one from parts, or have specific comparison rules, sticking with plain old String sounds fine.
Suggestion: Rename the parameters from uri to something like id or name in that case? Easy enough to do for method parameters, I guess if uri appears as part of public method names or fields then that gets in to API changes.
Removed API annotations

In order for modules to have access to NUI packages after these changes, you will need to add the relevant packages to the API package whitelist.

If I understand correctly, this is the motivating force behind #27. To make it easier to make rules about things under the org.terasology.nui prefix and make it unambigious if things like org.terasology.reflections are from NUI or gestalt or Terasology, etc.
(Note this is very much not saying that #27 should be combined in to this PR! Having them separate helps. I bring it up to make sure we're on the same page about next steps and to note that we don't expect to need to maintain that list beyond the transition.)
Are there any public classes in NUI you expect a module should not have access to? e.g. access to arbitrary filesystem paths, loading resources from HTTP URLs, etc.

I've just pushed a commit that should rename the uri parameters to id and urn respectively, depending on how they're used (ModuleClassLibrary converts the ids to a ResourceUrn internally). There was a public ClassMetadata#getUri() method, so I deprecated it and created a replacement ClassMetadata#getId() instead, which should mostly preserve API compatibility.
In terms of the areas of NUI that modules's shouldn't have access to, The NUI core libraries don't do any network/filesystem access directly that I'm aware of. The nui-gestalt packages use gestalt, so they might use the filesystem indirectly. Almost all of NUI was covered by @API annotations before, so it's actually easier to list which packages weren't covered by @API annotations:

org.terasology.nui.widgets.types
org.terasology.nui.reflection (different to org.terasology.reflection)
org.terasology.nui.canvas
org.terasology.input.device.[Except InputDevice, KeyboardDevice and MouseDevice]
org.terasology.reflection.[Except MappedContainer and TypeInfo]
org.terasology.reflection.copy
org.terasology.reflection.reflect
org.terasology.reflection.reflect.internal

There's an updated list of packages needed to get Terasology working with these changes here, although it's essentially everything in nui apart from the packages listed above. If #27 and gestalt 7 can remove the need for the whitelist afterwards though, then that's even better.

I'm interested in moving forward with this quickly so we can keep up the momentum that's going in to Tersasology-on-gestalt-v7.
I haven't seen anything in this PR that's raised red flags for me, but I hesitate to be the one to give it the "1 approving review" go-ahead because (a) a lot of the diff is from code moved from one place to another, and I'm not sure if any of it needs special attention, and (b) I don't have the experience with either NUI's implementation or usage to guess what the problems might be.
The other question I have is: after we do approve this, how do we release the result?
As 1.5.0? As 3.0?
If NUI 2.0 users will be migrating to this, it doesn't make much sense to call it 1.5.


Reference URLs get suggested multiple times

https://www.wikidata.org/wiki/Q6490983 currently suggests

http://icanwritefunny.blogspot.com/2013/05/the-electronic-arts-building.html
http://www.gettyimages.com/detail/news-photo/larry-probst-chairman-of-electronic-arts-inc-walks-with-news-photo/173236074

It doesn't look like that's a bug in the userscript because curl https://tools.wmflabs.org/wikidata-primary-sources/entities/Q6490983 | sort | uniq -c already says they're suggested twice.

This should be fixed with https://github.com/google/primarysources/commit/a6091d8df2e790bfa55b6a1dc42bd715803f023d. Thanks for reporting.

Thanks for the quick fix! I wonder, though, with the way https://github.com/google/primarysources/blob/master/backend/Persistence.cc#L337-L343 (which seems to be the backend of the "/any" endpoint) won't this eventually lead to "/any" redirecting to a wikidata entity that has an unapproved statement that won't be shown because its approved duplicate is already there?

We are actually in the middle of improving this. @wastl has introduced
two new states, "duplicate" and "blacklisted" yesterday. Whenever we
encounter either duplicate facts or blacklisted sources, we will
automatically set their state accordingly and never suggest them. This
should go live in the next couple of days in the front-end.

I was considering doing a duplicate check on import in the backend (had it actually already implemented), but it turned out to dramatically decrease import performance (which was kind of obvious from the beginning, the question is how many statements are going to be imported and how important is performance for this...). This could probably be improved a bit by additional index structures in the database, but it will remain a performance problem. Experience shows that database transactions with alternating INSERT and SELECT queries are starting to trash I/O.
It would be better to clean up the data before importing it if possible (since the transformation is done by a script this should not be too hard). We could also run a periodic background duplicate check and simply mark found statements as duplicate.
You are right about the /any endpoint, of course. The question is how much impact this problem will really have.

FWIW, the deduplification is already implemented in the front-end at
essentially no cost as we get very few new facts per qid:
https://github.com/google/primarysources/blob/ae939b5a19b36b5ef69c8ec449e1a9d261beaa2b/frontend/freebase2wikidata.js#L448-L459.

This is now also fixed in the backend. At the end of import, it is now possible to sweep once through the database and mark all duplicates with state "duplicate". In this way we avoid the problem with random returning unapproved duplicate statements.

Great, that looks like a thought out solution :-)


NPM package?

Is this the official npm package by this repo/author?
https://www.npmjs.com/package/font-awesome-animation

yes, that is correct

ok, would be nice if in this repo readme it was stated too (instead of bowerJS - npm install)..

I don't own this repo, I just put it onto npm. I think you can raise PR and when repo owner accepts it, we can update npmjs package

The issue is that i've tried npm install font-awesome-animations and it screws up the project and can't run afterwards.  well, i'll ignore this.

How can the owner be contacted? I can only see your name as collaborator.
It would be nice if the package could include scss source as well...

How can the owner be contacted? I can only see your name as collaborator.
It would be nice if the package could include scss source as well...

@skecskes, can you add me to the NPM project please?

@skecskes, can you add me to the NPM project please?

@l-lin you are already maintainer. I added you long time ago.
 Maybe you just need to push new version of library with your credentials. Let me know if that works for you, or I can just push latest 0.3.0 version if you want.

@l-lin you are already maintainer. I added you long time ago.
 Maybe you just need to push new version of library with your credentials. Let me know if that works for you, or I can just push latest 0.3.0 version if you want.

Ah now I got the who is who right ;) Thank you both!

Ah now I got the who is who right ;) Thank you both!

Thank you @skecskes, I did not check I was also a maintainer on the NPM project. Just published the v0.3.0.
@jonnsn, I created the adequate issue: #35. I should have time to do it this week.

Thank you @skecskes, I did not check I was also a maintainer on the NPM project. Just published the v0.3.0.
@jonnsn, I created the adequate issue: #35. I should have time to do it this week.


BE - Foundations & Slides w/ Mismatched Fields for Tooltip

Foundation 026 - Householders Living Alone
https://service.civicpdx.org/neighborhood-development/sandbox/foundations/livingalone/?format=json

Replace “total_population” with “pc_householders_living_alone”
Replace slide_meta.attributes.primary.name with “Percent of Householders Living Alone”
Replace slide_meta.attributes.visualization.type with “PercentDonut”
Replace slide_meta.attributes.visualization.comparison_value with null
Replace slide_meta.attributes.visualization.comparison_name with null

Resolved by #102

Despite the changes made, this has not taken effect in the actual endpoint: https://service.civicpdx.org/neighborhood-development/sandbox/foundations/livingalone/?format=json

The proper changes were made in slide_meta and have taken effect. However, it looks like all the feature objects in the slide_data.features array have been emptied.


Empty Table of Contents List for PDF LCP

Bug Report
What happened?
We tried to open PDF (LCP) file both in our App(with Swift-toolkit integration) and Test app. We were able to successfully open it. However, we experienced an empty Table of Contents for pdf files.
mediaType : application/pdf+lcp
Extension:  lcpdf
Sample PDF LCP
https://tuxedo-preprod-icdp.yondu.net/api/ebook/mobile/lcp/get-book-lcp/be7ec450-4617-4b53-bc92-d910951636ea/293
[passphrase: 293]
We tried to view the PDF with LCP in other Ebook Reader like Thorium and it can fetch the publication's table contents. However in the Test app and our app, we can't retrieve it. Hope you can assist us on how to fetch it thanks!
Expected behavior
We expected to view the table of contents list like the one we are using on .epub files.
How to reproduce?
Using Test App:

Press the "+" button on the right navigation bar and select From a URL.
Enter https://tuxedo-preprod-icdp.yondu.net/api/ebook/mobile/lcp/get-book-lcp/be7ec450-4617-4b53-bc92-d910951636ea/293
Enter 293 as passphrase.
Open Book
View Table of Contents (from the Option Hamburger menu).

Result on Test App:

Logs upon Opening PDF

vs
Logs on .epub Files

Environment

Readium version:
Using Swift Package Manager:
{
"identity" : "swift-toolkit",
"kind" : "remoteSourceControl",
"location" : "https://github.com/readium/swift-toolkit.git",
"state" : {
"branch" : "main",
"revision" : "2e0c647221612f923f9888851c848c88d14f7679"
}
}

Development environment

Testing device

iOS version: 15.5
Model (e.g. iPhone 11 Pro Max): iPhone 13 Pro Max
Is it an emulator? Yes

Tried it also on actual device. Problem also occurs.
Additional context

Are you willing to fix the problem and contribute a pull request? No

This is not supported right now, only the metadata taken from the manifest.json file inside the lcpdf are used.
We might implement a fallback on the LCP encrypted PDF in specific cases (blank manifest and only one PDF resource). This was not done because it required to open the PDF twice, in the Streamer and then in the Navigator. Now it should be easier to implement it with the CacheService.
I don't know if and when this will be implemented, as it's not a priority for the core maintainers right now. So unless a contributor step up, it might take a while.


[HUDI-248] CLI doesn't allow rolling back a Delta commit

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contributing.html before opening a pull request.

What is the purpose of the pull request
Allow CLI support rollback a delta commit.
Brief change log

Modify CommitsCommand.java

Verify this pull request
This change added tests and can be verified as follows:
(example:)

Generate a MOR hudi table.
Use CLI to connect to the table.
commit rollback --commit xxx.

Committer checklist

[x] Has a corresponding JIRA in PR title & commit

[x] Commit message is descriptive of the change

[x] CI is green

[x] Necessary doc changes done or have another open PR

[x] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@n3nash Thanks for your review, addressed the comment.


'error:  Error: API key ID and secret is required.' even though I am setting environment variables.

I am on Ubuntu. And even though I export my STORMPATH_CLIENT_APIKEY_ID and STORMPATH_CLIENT_APIKEY_SECRET variables, it still is acting as if they don't exist. I even ran 'printenv' and I can see that they definitely do exist. Any help?

It should be:
STORMPATH_CLIENT_APIKEY_ID
and
STORMPATH_CLIENT_APIKEY_SECRET
If there's a doc that misspells the environment variables, please give us a link so we can fix it!
Thanks!

Disregard the spelling in my first comment, I forgot to add the CLIENT part in my comment. But my variables are spelled correctly and it is still giving that error.

Can you confirm that your environment variables are making it into the node process?  Before your call to app.use(stormpath.init()), add this to see what's available before we initialize stormpath:
console.log(process.env)

Okay, I did that, and my variables aren't showing up there. If I printenv just in my terminal at the root of the project, they do show up however. I don't know why this is.

Some things to investigate:

How are you starting the node process?  Is it starting in a new shell context?  If so, it won't share the same environment.
Are you using any libraries that try to slurp in or auto-configure environment variables for you?  Sometimes those can modify the process.env value and cause issues.

I am guessing we are starting in a new shell context. How can I 'export STORMPATH_CLIENT_APIKEY_ID=***, etc.' in this new shell context it is using?

That really depends on what your goals are for process management, which is outside the scope of help I can provide for this library.
If environment variables are tricky for your situation, you can also put a stormpath.yaml file in the root of your node project, and put the values in there:
client:
  apiKey:
    id: YOUR_API_KEY_ID
    secret: YOUR_API_KEY_SECRET

Is that the exact syntax for the yaml file, or is that pseudo-code? I will try this.

That should be correct, take a look at this example here: https://github.com/stormpath/express-stormpath-angular-sample-project#3-configuration

Hey, I got it to work by re-naming my stormpath.yaml file to stormpath.yml, it seems .yaml is not being picked up.

Ah, my bad :) I'm glad it's working now!  If you're good with this approach, I'd like to close this issue.

Yes, you can close the issue. I think the source of my problem was that I was sort of handed this code base by another developer who is well versed in the configuration side of all of this. Me being exposed to this for the first time, it was hard for me to troubleshoot my issues. Thanks.


[FEATURE] Read out enviroment variables of a specific codeseeder codebuild "build run" id and export them to local environment variables

Is your feature request related to a problem? Please describe.
When developing or debugging an individual module, it is hard to run a local cdk synth or cdk deploy command because the module environment variables are missing in the local context. Right now, I have to create those environment variables by hand, which is a manual & time consuming task.
Describe the solution you'd like
As a module developer, I want to read out all environment variables of a specific module via a seedfarmer CLI command by passing in a codebuild "build run" id. The codebuild "build run" id contains all resolved module environment variables for the specific AWS account and region. Of course, this assumes that seedfarmer apply was executed at least once for the module in scope. Otherwise, there is no codebuild "build run" id to select from.
Example:
seedfarmer get-module-env-vars --buildrunid codeseeder-addf:e9462066-c2ef-488a-a8b0-652048a8fb67 --export-to-env-variables --output-to-file filename

I do not see the ability to fetch the environment parameters of an existing build run based on the build run id (via boto libraries or via AWS Cli).  I am open to suggestions here...?

This is in process---vetting a possible soln now.  @AndyEfaa

This has been  completed in PR #206.
It works by running:
seedfarmer list buildparams -d <deployment> -g <group> -m <module> --build-id <build-id>


Latest release without HttpModule

Hello,
We develop an offline web app so the clients don't have internet access. Is it possible to use this library on latest version without this dependency ?

The dependency on @angular/http was removed in https://github.com/angular/material2/pull/3792 which landed in the latest version. You won't get an error unless you try to load an icon set remotely.


Add infrastructure for Cluster Lifecycle API GitOps e2e tests

Issue #, if available:
Description of changes:
This PR includes some infrastructure needed to write Gitops e2e tests for the Cluster Lifecycle API and vSphere workload cluster e2e tests that utilizes it.
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/test all

/retest

/retest

/retest

/test all

/retest

/test all

/hold
I need to run the tests for FluxLegacy and FluxGit once more to ensure they work

\unhold

\unhold

/unhold

/retest

/retest

/retest

/retest

/retest

/approve


updated copyq (2.7.1)

Changes to a cask
Editing an existing cask

[x] Commit message includes cask’s name (and new version, if applicable).
[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.

Merged as 989864531d70ab03ed1a3bad33108f4d2d24dbcb.


Feat/allbatch remove deploy and fetch

Closes: PRO-182
As explained in the Linear issue, it's unclear if/when we want to have this implemented, as we want to be able to test it in the testnet in the scenario where we want to implement this in mainnet. Therefore, we are just leaving it here as an open PR for the weeks to come.

We have added an AllBatchv2 instead. If we end up moving to that option we can revisit.


Improved selection placement when emoji is typed

Details

Introduced getCommonSuffixLength and improved current logic of placing cursor after emoji is typed
Fixed Issues

$ https://github.com/Expensify/App/issues/17275
PROPOSAL: https://github.com/Expensify/App/issues/17275#issuecomment-1584294590
Tests

Go to any chat
Type emoji name like, but make sure cursor is in the middle of text when completed
You can do :smmile: and move your cursor after second m and remove it to place your cursor in the middle of text when emoji name is completed
Make sure when emoji name is replaced with emoji itself cursor is placed right after emoji

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

Offline tests

Same as tests
QA Steps

Same as tests

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

PR Author Checklist

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

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

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

[x] Android / native
[x] Android / 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 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/59907218/8d350517-c8fa-4fbd-8c33-66d612a0c446

Mobile Web - Chrome
https://github.com/Expensify/App/assets/59907218/43dcc058-f2af-464d-a3b8-12df4a5ff354

Mobile Web - Safari
https://github.com/Expensify/App/assets/59907218/facc1eed-13eb-4387-b032-5d1247a763e9

Desktop
https://github.com/Expensify/App/assets/59907218/e34df608-1df5-423c-aafb-0ae1fe7643d7

iOS
https://github.com/Expensify/App/assets/59907218/9e871565-735c-4a2d-9136-b0723eb79b72

Android
https://github.com/Expensify/App/assets/59907218/b691ac96-75a2-496e-ba47-6d7da7698c1b

Looks like there is a problem with selection in native devices, controlled selection is not working in android and ios apps, that's why we cannot control cursor correctly.
I found this issue which talks about this issue - https://github.com/Expensify/App/issues/12854

@aimane-chnaif No I couldn't find similar issue for ios

: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/MariaHCD in version: 1.3.42-0 🚀

platform
result

🤖 android 🤖
cancelled 🔪

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
cancelled 🔪

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.42-26 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Common API draft numero uno

Result of the discussion of #1. @JonasIsensee @zgornel @altre @dillondaudert let's talk :D
Main point for me is the return type of search. Seems that most packages actually return only indices, and not distances.

@KristofferC seems to me that the discussion here is very relevant for NearestNeighbors.jl . But if you do not want to participate (without having to justify why), it is still best to let us know, so that we think about how to proceed with NearestNeighbors.jl.

So..., should I remove the examples and merge this? Are we good to go?

I was planning to review this but had no time. Is there any urgency to it? I'll be able to have a look at it in the next weeks.

Ah sure, then I wait.

I am missing some API elements:

API for bulk queries. This permits micro-optimizations (reuse of temp structures, better cache-locality, better cache-locality when multithreading) as well as macro-optimizations (dual tree approach, sometimes better asymptotic complexity, cf eg https://arxiv.org/pdf/1304.4327.pdf).

API for approximate knn queries.

API / discussion for extracting the splitting into local neighborhoods. Context of this is the following: Many constructions are tree-like, and many non-knn applications can profit from a sensible split of the point cloud into smaller localized subsets. Tree-like search structures can naturally provide this. It is not clear whether we should have a unified API for this, but we should at least have docs that discuss these use-cases, both to inspire potential users and to motivate search structures to provide such an API.

Thanks.

Sure. How do you imagine the function call for this?

I am not sure this is necessary: to the best of my knowledge, a package provides either approximate searches (like HNSW.jl) or exact ones like NearestNeighbors.jl. Is there a reason to have two API functions? I stand that just using search(..., FixedAmount) should be enough, and the context (i.e. which package you use to search), should tell you whether it is approximate or not.

I think your point 3 should be implemented/discussed after this PR. Better to have a basic foundation in place first. At the moment I am not sure how to proceed with it at all anyway.

This has slept for too long but soon I will complete this! I won't wait for @chethega either. But I want to ensuire that the API has two things:

Interaface for many neighbor searches (as was already suggested: API for bulk queries)
Theiler window, or simply put: only finding neighbors whose index has at least some distance from the index of the given point (this is only valid if the given point is already part of the dataset that we search in. The window will also be nothing by default).

(I'll open a new PR: i need to clean master and add project.toml and stuff firrst)


Feat/687/deploy

functionality for deployment via CLI or task in place
test project added that can be used for manual testing

just go to deploy-tooling/test/test-input run npm i once, and then test with npm run deploy:cli -- --url <TEST_SYSTEM_URL>

@slin-sap would you please review this one? @longieirl did a functional testing already.

@slin-sap thanks for your review. Could you please review my responses to your comments and if agreeable, resolve them, or let me know what else you would like to get changed.

Why not use https://www.npmjs.com/package/adm-zip or https://www.npmjs.com/package/jszip for example?

It is currently being used in the @sap/ux-ui5-tooling (https://www.npmjs.com/package/@sap/ux-ui5-tooling?activeTab=dependencies) and since one of the main use cases for this module is to be integrated there, I thought it makes sense to use the same.

Question around existing the deploy script! My understanding is, any CI/CD pipeline that executes the deploy command i.e. npm run deploy will get an exit status of 0. Should we introduce https://nodejs.org/api/process.html#process_process_exitcode so that any thrown error will exit with a status of 1 since we have gracefully handled known exceptions but need to be explicit that the process has exited with a known issue.

Question around existing the deploy script! My understanding is, any CI/CD pipeline that executes the deploy command i.e. npm run deploy will get an exit status of 0. Should we introduce https://nodejs.org/api/process.html#process_process_exitcode so that any thrown error will exit with a status of 1 since we have gracefully handled known exceptions but need to be explicit that the process has exited with a known issue.

We do this with https://github.com/SAP/open-ux-tools/blob/feat/687/deploy/packages/deploy-tooling/src/cli/index.ts#L119.
You can test it on a Mac like
./bin/deploy -c does_not_exist.yaml
echo $?

The result will be 1. Or do you need it for the UI5 task based run as well?

@tobiasqueck from reading the Commander FAQ, the comamnd.error will return an exit code of 1 so i think we are covered here since there is a try/catch around both the deploy and undeploy thus resutling in an exist status of 1.


resolve engine's bash build errors on new userenvs

The bash version that is custom built for the engine fails to build on Fedora 40 and newer distros.  Figure out how to resolve this or if it is even still needed.

Testing this out with this PR: https://github.com/perftool-incubator/rickshaw/pull/539


Episode idea: Runnding Kubernetes on the vmware stack

After the heptio and vmware news [1] I would be interested in best practices running kubernetes on the vmware stack (vsphere, vsan, nsx-v, nsx-t, vrealize).
[1] https://www.vmware.com/company/news/releases/vmw-newsfeed.VMware-to-Acquire-Heptio-to-Accelerate-Enterprise-Adoption-of-Kubernetes-On-Premises-and-across-Multi-Cloud-Environments.1645750.html

I belive that is what Pivotal PKS does already

There's actually more than one option.  PKS does a lot of stuff in addition to runnking k8s, if your looking for something simpler and are using vCloud Director they also have a container service extension that has a feature set somewhat similar to kops - https://github.com/vmware/container-service-extension and there's also some options for using KubeSpray to handle everything except VM provisioning.

I'd really love to watch this episode. Currenly I'm working towards a solution using terraform+kubespray (k8s 1.12.1) on a gitlab pipeline but the missing part now is vSphere as a cloud provider to have PersistentVolumes. I already fixed some stuff but is now working yet :(

I do not have much experience yet with VMware, however, I will be helping a colleague next month test VMware, and Automation. Isn't it terraform with VRealize automation to manage VMware Cloud The Beginner’s Guide to immutable infrastructure with Terraform and vRealize Automation.
would like to learn more about what thoughts and directions VMware+Heptio will have for applications workloads in the Enterprise?

Thats actually the first I've seen that terraform+vra method of running k8s on VMware, and brings the list up to at least 4 different ways to accomplish the same goal. Maybe a show that covers some of the pros/cons of the different options?

@mgaruccio 1) terraform +vra, 2) vcloud director + terraform, 3) pks, 4) container service extension 5) kubespray?  am I right?  what are the different methods?

I also made a poc with Rancher 2.
We had some problems with nsx-t on vxrail, so we switched back to nsx-v. So
I am also interested in different network setups.
Another possibility is k8s on vmware integrated Openstack, which lags day2
ops.
Am Mo., 19. Nov. 2018, 16:39 hat Walid<EMAIL_ADDRESS>geschrieben:

@mgaruccio https://github.com/mgaruccio 1) terraform +vra, 2) vcloud
director + terraform, 3) pks, 4) container service extension 5) kubespray?
am I right? what are the different methods?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/heptio/tgik/issues/146#issuecomment-439936159, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAK1UZNbS-RiVbPIvpL1qSShkZxSehSrks5uwtDMgaJpZM4YR04l
.

@walidshaari that covers the ones I'm aware of


IntensityMotionCheckPanel: Most likely incorrect test in ResultUpdate() function

While looking into addressing the following warning:
tmp/DTIPrep/src/IntensityMotionCheckPanel.cxx: In member function ‘void IntensityMotionCheckPanel::ResultUpdate()’:
/tmp/DTIPrep/src/IntensityMotionCheckPanel.cxx:3978:33: warning: suggest parentheses around operand of ‘!’ or change ‘&’ to ‘&&’ or ‘!’ to ‘~’ [-Wparentheses]
   if( ( ( (!qcResult.Get_result()  & InterlaceWiseCheckBit) == InterlaceWiseCheckBit ) ||
                                 ^

associated with this code:
https://github.com/NIRALUser/DTIPrep/blob/d76440973fb9b2afd223597080dccdc8a1447775/src/IntensityMotionCheckPanel.cxx#L3979-L3983
I suspect something is wrong.
Indeed, based on the operator precedence [1], adding parenthesis around !qcResult.Get_result() is the right thing to do to address the warning, that said the check should be reviewed since the value returned by Get_result() always evaluates to 1 or 0.
[1] http://en.cppreference.com/w/c/language/operator_precedence
Looking at this test in an other part of the code hints on what should be the correct implementation:
https://github.com/NIRALUser/DTIPrep/blob/d76440973fb9b2afd223597080dccdc8a1447775/src/IntensityMotionCheckPanel.cxx#L4245-L4248

Most likely incorrect test:
if(

   (

     (

        (!qcResult.Get_result()  & InterlaceWiseCheckBit) == InterlaceWiseCheckBit )

        ||

     (

        !(

           this->GetProtocol().GetSliceCheckProtocol().bQuitOnCheckFailure ||
           this->GetProtocol().GetInterlaceCheckProtocol().bQuitOnCheckFailure

         )

     )

   )

  && this->GetProtocol().GetGradientCheckProtocol().bCheck

)

vs
similar but most likely correct test
if(

   (
      (
         !(
             (qcResult.Get_result()  & InterlaceWiseCheckBit) == InterlaceWiseCheckBit

          )

      )

           ||

      (!

            (
              this->GetProtocol().GetSliceCheckProtocol().bQuitOnCheckFailure ||
              this->GetProtocol().GetInterlaceCheckProtocol().bQuitOnCheckFailure
            )

      )

   )
)

Then, based on my previous comment I think the correct test should be:
if(

   (

     !(

        (qcResult.Get_result()  & InterlaceWiseCheckBit) == InterlaceWiseCheckBit

     )

        ||

     (

        !(

           this->GetProtocol().GetSliceCheckProtocol().bQuitOnCheckFailure ||
           this->GetProtocol().GetInterlaceCheckProtocol().bQuitOnCheckFailure

         )

     )

   )

  && this->GetProtocol().GetGradientCheckProtocol().bCheck

)

Which in turn can be rewritten as this more readable version:
bool doInterlaceWiseCheck = (qcResult.Get_result()  & InterlaceWiseCheckBit) == InterlaceWiseCheckBit;

bool doQuitOnCheckFailure =
  this->GetProtocol().GetSliceCheckProtocol().bQuitOnCheckFailure ||
  this->GetProtocol().GetInterlaceCheckProtocol().bQuitOnCheckFailure;

if(
   ( !doInterlaceWiseCheck || !doQuitOnCheckFailure )
   && this->GetProtocol().GetGradientCheckProtocol().bCheck
)
  {
  // ...
  }

Thanks JC, I think you are correct. DTIPrep has (in parts) some really ugly code (2 postdocs who weren't the best coders worked on it), sorry!

Hi @styner ,
No need to be sorry. It is nature of the work.
Improving our processes, providing education and resources to increase quality of our softwares, and also including software maintenance in our grants and funding requests are all helpful actions :smile:
The code being open-source with a permissive license, and available on GitHub with the option of doing pull requests is one of the many steps in the right direction.
I think some of the take home messages would be:

to care for build warnings and try to either address them or explicitly disable them. They often reveals useful information.
add tests

Thanks again for reviewing and integrating these changes.
Jc


Fix compatibility with tensorflow 1.0rc1

Hello,
thank you for keras!
When upgrading to TensorFlow 1.0 rc 1, I encountered some errors in keras related to API breaks.
From what I can see, keras usually follows the approach of "try the newest api, if it fails fall back to older", via attribute errors. As this does not work with the rename of tf.concat_v2 to tf.concat (which previously existed but with different semantics), I have introduced a tf_major_version/tf_minor_version and switched to the new API based on tf_major_version >= 1. The alternative would be to catch a type error, but this would seem pretty broad to me.
I have run the tests with both python 2.7 and 3.5 and tensorflow 0.12.1 and tensorflow 1.0.0rc1 (so four times), they seem to pass. I have run the CPU-only tests.
This should solve #5265.
Thank you
Thomas
P.S.: I messed up an earlier pull request. My apologies.

LGTM, thanks!


PowerToys not using Microsoft store for new update

Microsoft PowerToys version
0.47.1
Running as admin

[ ] Yes

Area(s) with issue?
General
Steps to reproduce

Install PowerToys from Windows 11 Store
Wait until new PowerToys release available on GitHub
PowerToys will prompt you to download and install update through installer, instead of Microsoft Store.

✔ Expected Behavior
PowerToys will display a notification on "New update available", then direct user to download/seek PowerToys update through Microsoft Store.
❌ Actual Behavior
PowerToys will download installer through GitHub instead of going through Microsoft Store. After upgrade, PowerToys will show as a Windows Desktop application instead of an application installed through Microsoft Store (aka on Microsoft Store, it will no longer show as "installed").
Other Software
No response

Just saw this comment from #413. This probably isn't a bug after all (for now)

What bugs me is that the Windows Store doesn't even remember that PowerToys is installed. Even if it didn't offer updates directly through the store, it would be nice if it at least showed up in my list of installed apps and had some indication on the app listing page that I already have it installed instead of simply having a green "Install" button again. I was sure this was a bug until I read this and the linked issue.

@bmcclure It's because everytime PowerToys execute their update program, they utilized "Uninstall old version" and "Install new version" from the installer instead of a in-place upgrade via Microsoft Store. I think this is by design but still a bit annoyed by the fact. I'll keep this open because I feel like it's still a bug, but probably not anything severe to warrant a fix immediately.

this is expected behavior

win32 apps can't use their update system

win32 apps can't use their update system

Then how does firefox do it?

They use their own update system and chances are don’t need to a UAC on update.  We are proactively tweaking things so we can do a silent upgrade. Our big blocker is UAC prompt due to a few things. The new bootstrapper was a massive tweak to improve the experience and help do the underpinnings for work.

They use their own update system and chances are don’t need to a UAC on update. We are proactively tweaking things so we can do a silent upgrade. Our big blocker is UAC prompt due to a few things. The new bootstrapper was a massive tweak to improve the experience and help do the underpinnings for work.

I believe what he meant was the Mozilla Firefox on Microsoft Store, it is MSIX packaged.


Re-export core via enumflags2

Builds on top of #4, with the breaking changes isolated here so the initial PR can still be part of 0.5.x.
Rationale in the comment TBD once we figure out the real reason for doing this (if it is actually desireable to do so), see previous PR for discussion regarding the pros/cons of injecting extern crate core via the macro vs re-exporting.

I feel like enumflags2_derive should be able to rely on the same version of enumflags2 being used. Perhaps this could be done with enumflags2 reexporting the macros from the derive crate? It would still be a breaking change, but the last one with a reason this trivial.


MAINT: Bump version into v0.11.3

Cherry-pick changes from https://github.com/conda-forge/pyaedt-feedstock/pull/103 and add the missing defusedxml dependency.

@Samuelopez-ansys The other PR won't succeed due to the missing dependency. I couldn't update it myself so I had to create a new PR.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe/meta.yaml:

PyPI default URL is now pypi.org, and not pypi.io. You may want to update the default source url.


Use .editorconfig

Formatted code with initial config mentioned in #99

I've used Resharper CodeCleanup CLI to try apply rules to all files (since dotnet format only applies whitespace formatting).
One thing it does however is applying some spacing rules that that turns this.
new AuthenticationProperties { RedirectUri = "/" }
into this
new AuthenticationProperties {RedirectUri = "/"}
I haven't found where the setting is yet, but I'll find it soon.
One more thing it does is reorder private fields, I'll see if I can disable that. I'd like to have it just run all rules defined in editorconfig but no success yet.

Regarding var vs types. I currently try to follow the corefx guidelines. Thoughts?

I've used Resharper CodeCleanup CLI to try apply rules to all files (since dotnet format only applies whitespace formatting).
One thing it does however is applying some spacing rules that that turns this.
new AuthenticationProperties { RedirectUri = "/" }
into this
new AuthenticationProperties {RedirectUri = "/"}
I haven't found where the setting is yet, but I'll find it soon.
One more thing it does is reorder private fields, I'll see if I can disable that. I'd like to have it just run all rules defined in editorconfig but no success yet.

Have you tried playing around with spaces_around_brackets
Looks like it could be what you are looking for (https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties):

Any reasons this PR never got completed? @PeterOrneholm @Zonnex

@nikolaykrondev
We only use var when it's obvious what the variable type is (e.g. var stream = new FileStream(...) not var stream = OpenStandardInput()).
The idea is that code reviewing outside an editor is slightly annoying if you can't easily see what the types are. Types makes the code easier to reason about.

We recently did this in a few projects, and my suggestion is to generate a new editorconfig, recommit the changes and we'll review this again after

Well nowadays you can just run gitpod.io on your repo, and get an IDE in the browser, so that is almost getting to be a moot point.
https://gitpod.io/#https://github.com/ActiveLogin/ActiveLogin.Authentication
var isn’t just a shorter syntax, it does come with some other benefits.

This is so out of date with master, so I'll close it, and we can make a new one when implementing it.


[REQUEST Membership]: New membership for fsl

GitHub Username
@fengshunli
Organization you are requesting membership in

openkruise
Sponsors

@veophi  @zmberg @furykerry
Requirements

[x] I have joined in the community Slack or DingTalk
[x] I often attend OpenKruise Community Week
[x] I have reviewed the community-membership docs
[x] I have spoken to my sponsors ahead of this application, and they have agreed to sponsor my application
[x] I have checked my affiliation in devstats (if it's not correct, please fix in cncf/gitdm)
[x] I am actively contributing to 1 or more OpenKruise subprojects

List of your contributions

PRs reviewed / authored:
https://github.com/openkruise/kruise/pull/1172
https://github.com/openkruise/kruise/pull/1166
https://github.com/openkruise/openkruise.io/pull/92

Issues :
https://github.com/openkruise/kruise/issues/1167
https://github.com/openkruise/kruise/issues/1169

+1 welcome onboard ! Thanks for contributing to OpenKruise.

+1 welcome！

+1 welcome onboard

/approve


Don't fully re-render on resize

Requires support from candela and the reference app.

Fixed in 8c6f161c5da19a75b34f6a409f85a7d2f3bc1a2e


Old swagger-parser-v3 version is in use

Description:

openapi tools are is still using old unstable version of swagger-parser-v3
io.swagger.parser.v3:swagger-parser:2.0.0-rc3.
Should be possible to migrate to latest version. 2.0.14
Steps to reproduce:
N/A
Affected Versions:
1.0.0-alpha3
OS, DB, other environment details and versions:
N/A

Closing issue since fixed with #18617


Resource Compare never returning true

Versions
Minecraft: 1.18.2
Forge: 40.1.0
Origins: Origins-1.18.2-<IP_ADDRESS>-unified
Hi, in two separate instances I have tried to compare an origins resource value to a selected value using the resource entity condition type and it has never returned true despite my thoughts that it should.
Below are text versions of the two relevant powers and information about them.
Let me know if anything else is needed, or if this is a user error.
The resource being used is a subpower of the "golem_battery" power labeled "battery_resource" at the top of the file.
The relevant comparisons start on lines 57 for the golem_battery file, and 106 and 120 for the golem_waterdebuff file.
The intention of the golem_battery comparison is that the item should only be consumed if the resource is below 100 (the maximum value), and the intention of the golem_waterdebuff is that the damage over time is in effect only if the resource is at or below 0 (the minimum value).
golem_battery.txt
golem_waterdebuff.txt
Thanks

Seems to be a user error so I'll just close the issue. I got it to work by checking for not equals to instead of less than, and checking for equals to instead of less than or equal to respectively.


PhotonGI + lightgroups + clamping leads to fireflies

OS: Windows 10
LuxCore version: 91c85d51f2b1fafcb87bbb8d5cc9d670bd93bd86
Scene: photongi_clamping_lightgroups_fireflies.zip
In this specific scene, the combination of PhotonGI + lightgroups + clamping leads to fireflies on a glossy translucent material.
Happens on CPU and on GPU.
Not sure what exactly is going on here, and if it even is a bug.
This is the "sun" light group with PhotonGI + clamping:

"sun" light group with just PhotonGI:

"sun" light group with just clamping:

"sun" light group without clamping or PhotonGI:

The above are renders from the attached stripped-down version of the Danish Mood scene.
Below are the two renders where I originally spotted the problem:
PhotonGI + clamping:

PhotonGI, no clamping:

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

The source of the problem is here:
scene.lights.140526408646152.radius = 0.0600000024
The radius of the sun i reduced by about 20 times. It is already very very small by default and very hard to find for a path tracer.
Reducing the radius by 20 times starts to produce ballistic numbers. It just not make any sense as setting.
For what I observed, it is not related to PGI or clamping at all (may be clamping goes ballistics as side effect of the numbers produced when hitting the sun disk).
Short version: it is a numerical precision problem for very small radius sizes.

The source of the problem is here:
scene.lights.140526408646152.radius = 0.0600000024

I think you have mixed up two lights there. The sun size is set with the relsize property, not radius - the latter belongs to the sphere light in the scene.
The properties look like this here. I inserted a blank line between the two lights, due to the bad naming it is very hard to distinguish them otherwise:
# sphere light
scene.lights.3158114469736.gain = 200 200 200
scene.lights.3158114469736.importance = 1
scene.lights.3158114469736.id = 2
scene.lights.3158114469736.type = "sphere"
scene.lights.3158114469736.color = 1 1 1
scene.lights.3158114469736.efficency = 0
scene.lights.3158114469736.power = 0
scene.lights.3158114469736.normalizebycolor = 0
scene.lights.3158114469736.position = 0 0 0
scene.lights.3158114469736.transformation = 1 0 0 0 0 1 0 0 0 0 1 0 -1.4775300025939941 1.5820077657699585 2.0828022956848145 1
scene.lights.3158114469736.radius = 0.060000002384185791
scene.lights.3158114469736.visibility.indirect.diffuse.enable = 1
scene.lights.3158114469736.visibility.indirect.glossy.enable = 1
scene.lights.3158114469736.visibility.indirect.specular.enable = 1

# sun
scene.lights.3158114475688.gain = 1.9999999494757503e-05 1.9999999494757503e-05 1.9999999494757503e-05
scene.lights.3158114475688.importance = 1
scene.lights.3158114475688.id = 3
scene.lights.3158114475688.type = "sun"
scene.lights.3158114475688.dir = 0.65174049139022827 -0.64096939563751221 0.40545362234115601
scene.lights.3158114475688.turbidity = 2.2000000476837158
scene.lights.3158114475688.relsize = 1
scene.lights.3158114475688.visibility.indirect.diffuse.enable = 1
scene.lights.3158114475688.visibility.indirect.glossy.enable = 1
scene.lights.3158114475688.visibility.indirect.specular.enable = 1


Additional Auth Support Proposal #1019

Here is a proposal for issue #1019. Please have a look!
Note that this is mostly orthogonal to and does not address having pluggable auth.

cc @deads2k @liggitt

Why is this a PR and not an issue? We use issues to track proposals (or just PRs themselves)

Why is this a PR and not an issue

@duglin PR with markdown is much easier to review than track all the comments in the issue to get the final picture. You can apply comments to any line, and all updates appear in place.
This PR doesn't need to be merged, but I don't see anything wrong even with merging the design we agreed upon (before it is implemented).
Google Doc would probably work too.

We use issues to track proposals

There is a link to the issue https://github.com/kubernetes-incubator/service-catalog/issues/1019 which has a casual design description. This document is more concrete.
Also I've noticed that very often issues don't get updated after new agreements or concerns come out during weekly calls or Slack discussions.

ok, I guess, as long as we don't merge it. I'm not a fan of checking in proposals that will just confused people as to what's really going on. The official docs should give them the latest.

I'm not a fan of checking in proposals that will just confused people as to what's really going on.

I'm fine with not merging this PR as well, but Kubernetes community is using repos for tracking proposals (used to be in the main repo, but now moved into a separate one):
https://github.com/kubernetes/community/tree/master/contributors/design-proposals
And other SIGs are using Google Docs for working on proposals as well, for example Secrets Roadmap.

yea, I'd be ok with a google doc since I view those as temporal things to me and there's no risk of them accidentally being merged.  :-)

@richardfung This PR has been inactive since July. Closing it for keeping a list of open PRs clean. Feel free to reopen if needed.
P.S. The original issue #1019 is closed and we have merged an alternative "bearer token" support instead.


yard stats --fail-on-warning doesn't fail on warnings

Steps to reproduce
class Xxx
  # @param [xxx]
  def self.x
    puts 'xxx'
  end
end

$ yard doc --fail-on-warn .
[warn]: @param tag has unknown parameter name:
    in file `xxx.rb' near line 3
…
$ echo $?
1
$ yard stats --fail-on-warn .
[warn]: @param tag has unknown parameter name:
    in file `xxx.rb' near line 3
…
$ echo $?
0

Environment details:

OS: linux x64_64
Ruby version (ruby -v): ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]
YARD version (yard -v): yard 0.9.26
Relevant software dependency/versions:

[Any 3rd party libs required to reproduce, omit if none]

I have read the Contributing Guide.

This seems like a bug in documentation for yard stats --help. The --fail-on-warning option should not be listed as part of this command; due to internal structure of YARD CLI commands, these two commands share a common base, but not all options are shared.
In this case --fail-on-warning is defined strictly in yard doc and using it in another command should be undefined behavior. The fix here should be to remove the option from documentation in yard stats --help, however the commands above are expected behavior (though the latter command should warn about the unrecognized option).

Actually given the simplicity of allowing yard stats to respect warning failure, it's probably easier to add it there.


Array-based value stored as a string

Can this condition be expanded to consider strings starting with '[' as well so that setItem('my-key', [0, 1, 2]) can be read with subsequent getItem('my-key') calls as an Array instead of a string?

I'm happy to submit a PR if this is an acceptable change.

@calebmpeterson thanks for calling this out, yes that's definitely a bug. Feel free to open a PR to fix this.

PR opened: https://github.com/FrigadeHQ/remote-storage/pull/26

Appreciate the fix. This is now released in<EMAIL_ADDRESS>


Watch mode

Closes #4.

Coverage decreased (-13.6%) to 85.185% when pulling 9b76669828384ca6cec99c2616c4ceb922d0f7b3 on watch into af3a487d895578fa5b1db1e84ba31d1409461bfa on master.

Coverage decreased (-0.9%) to 46.0% when pulling 242b2e6ebb979f08081671133b97b843bc728611 on watch into 8f3279d7b17354b9b7e2c08690191dc72695638d on master.

Coverage decreased (-0.8%) to 46.04% when pulling ba99d72e07a4770c9763cf467be9a841fd3fb8e9 on watch into 8f3279d7b17354b9b7e2c08690191dc72695638d on master.

Coverage decreased (-4.3%) to 42.534% when pulling 5fcd39520d502fdf809eff8a94f8906eda9724b4 on watch into 8f3279d7b17354b9b7e2c08690191dc72695638d on master.

Coverage decreased (-4.3%) to 42.534% when pulling 5fcd39520d502fdf809eff8a94f8906eda9724b4 on watch into 8f3279d7b17354b9b7e2c08690191dc72695638d on master.


net: tcp: expose some TCP helper functions

Similar to UDP, some drivers can make use of the following functions:
net_tcp_get_hdr()
net_tcp_set_hdr()
Let's expose them as <net/tcp.h> and change all internal references
to "tcp_internal.h".
NOTE: These changes are needed by an upcoming offloaded networking LTE-M modem driver.
Signed-off-by: Michael Scott<EMAIL_ADDRESS>

Codecov Report

Merging #7529 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #7529   +/-   ##
=======================================
  Coverage   55.25%   55.25%
=======================================
  Files         467      467
  Lines       51638    51638
  Branches     9887     9887
=======================================
  Hits        28531    28531
  Misses      19198    19198
  Partials     3909     3909

Impacted Files
Coverage Δ

subsys/net/ip/ipv6.c
46.27% <ø> (ø)
:arrow_up:

tests/net/tcp/src/main.c
49.59% <ø> (ø)
:arrow_up:

subsys/net/ip/net_pkt.c
61.41% <ø> (ø)
:arrow_up:

subsys/net/ip/net_core.c
71.53% <ø> (ø)
:arrow_up:

subsys/net/ip/tcp.c
55.2% <ø> (ø)
:arrow_up:

subsys/net/ip/ipv4.c
72.94% <ø> (ø)
:arrow_up:

subsys/net/ip/net_context.c
66.38% <ø> (ø)
:arrow_up:

subsys/net/ip/connection.c
78.71% <ø> (ø)
:arrow_up:

subsys/net/ip/tcp_internal.h
50% <ø> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4b0b65c...1822bff. Read the comment docs.


Add support for nil auth

When neither the user nor the auth method is provided, auth will be interpreted as nil.

@naoyafurudono GREAT! Thank you!


MQ <IP_ADDRESS> version upgrade to <IP_ADDRESS> maintaining shared storage results in broken installation

Utilizing a working IBM certified image for <IP_ADDRESS> and removing all configmaps, sts and all besides the shared pvcs mounted to /mnt/mqm-data & /mnt/mqm-log and deploying a new instance of the same service and queue manager name utilizing the IBM certified image for <IP_ADDRESS> results in a broken installation. On the surface it does not appear broken however the pods never even attempt to utilize the updated configmap (primarily focused on mqsc) after this upgrade. We can see in /etc/mqm that the correct mqsc configmap is mounted as specified by the STS however in the MQ logs it never attempts to use it. We can then attempt to force it by bringing down the sts pods to 0 and bringing it back up. The expected behavior for both a fresh <IP_ADDRESS> and a fresh <IP_ADDRESS> results in the pod running the mqsc configmap commands, but in this instance (upgrading while keeping storage) it still never even tries to utilize the configmap. I can provide any files requested or run any tests as required but we have a 100% success rate in producing this issue during the upgrade. I also want to note that using a fresh install (new storage et al) of the exact same files for <IP_ADDRESS> and <IP_ADDRESS> results in the expected behavior of utilizing and updating the mqsc configmap.

Created the IBM case TS005540815 as it appears <IP_ADDRESS> image is not working as intended.

Based on https://github.com/ibm-messaging/mq-container/blob/master/docs/usage.md the below is said.
By creating your own image and adding your own MQSC file into the /etc/mqm directory on the image. This file will be run when your queue manager is created.
I can see the updated mqsc file there however MQ never tries to use it. I never tries to use it because it believes it is in recovery mode and never re-creates the queue manager on restart. After multiple scale downs it is always is in recovery mode and never attempts to create the queue manager leading to this indefinite loop of never using the updated configmap.

After speaking with an MQ solutions architect we found the issue being in <IP_ADDRESS> it does not by default utilize the AutoConfig stanza to offload the running of the mqsc and ini files. In version <IP_ADDRESS> and on it does. So when going from <IP_ADDRESS> to a higher version while maintaining storage the new files are never run because MQ no longer relies on OCP to run it runs it itself but without the stanza in the ini from the <IP_ADDRESS> version install it does not know where to go. If you add the AutoConfig stanza and the locations of you mqsc and ini file to you qm.ini and restart the pod so the updated files are mounted within the <IP_ADDRESS> version. You can then go about upgrading, while maintaining storage to the new version. This seems to have been lost in the documentation of upgrades and might be helpful to "patch" into <IP_ADDRESS> base to have that stanza defined with default values.


Unable to see the feedback icon

The feedback icon does not appear in the screen though it is available in the chat feature in AI studio. I don't see it as a configurable parameter. Do you have plans to include the feature or Iam i missing something?

As long as you have Cosmos DB set up and connected, you should be able to enable the thumbs up/thumbs down feedback function using the environment variable AZURE_COSMOSDB_ENABLE_FEEDBACK and setting it to True. Check the readme.

@Rajeshcs79 Let me know if you are still having issues.


Add player build type to group statistics

Currently the "Statistics" tab of all groups includes

Maxed Overall
Maxed Combat
200m skills

Proposing that we also a count of the below types, underneath "200m skills"

Main [or "Regular"]
Ironman
Hardcore Ironman
Ultimate Ironman

Related to #940


[Question] unable to access the after docker build on debain

unable to access the after docker build on Debian it says running on port 8000 but only the apache server is running on its default index.html on port 80 i have the latest docker version

in general is there a tutorial on how tf i set this up


CExporter no longer generates C header files?

Built this using VS 2022, ran it, it seemed to have no errors, but I am not seeing the C header files in the ida directory as was usually the case in the past.  Is this no longer supported?

No it no longer exports .h files, and hasn't done so since 23rd of April.
This is due to the .h format didn't allow for parsing through the IDA/Ghidra database for renaming and setting types on functions that were already discovered. It now exports in YML format that is agnostic between both programs, so there is only one file needed.


Splitting of language dictionary into packages

I'm currently working on a splitting strategy of the dictionaries. It also includes the possibility of custom dictionaries loaded from the internet or locally. The idea is to implement an ILanguageManager service as a token package which then is exported to other packages as well. Then the spellchecker-package can select from the list of registered languages. The language items are stored as webpack links but e.g. a custom package can also provide a web address (user configured) for  loading. This will also solve #66 .
At the moment I have understood the logic of the token package, but the problem is, that for such a token package and also following new packages we need an update of the structure. I suggest to create a package folder in which we can put all packages necessary. As fas as I understood with the workspace item in the package.json of the main directory one can trigger all compilations and packaging of all packages at the same time. In my test this is working, however I faced a problem that my test icon package is distributed and initialised as wished by the spellchecker-extension but a demo package which should use the token is not working. It is linking the token package description and for some reason it will try to use the copy of the token package which is obviously not initialised by any process... the console  is claiming to access an unprovided structure ...  I've looked in the repo of jupyterlab-topbar which is doing the same thing and this is working.  Anyway I guess the implementation path is okay, so we can start step by step converting the repo into the package thing and then try to split the dictionaries into individual packages.
Do you have experiences in such multiple package repo for jupyterlab?

Yes, jupyterlab-lsp uses a monorepo like that. However I would stop for a moment and think about alternatives. To improve on the current situation we can either:

Create a server extension that will check if the user has any hunspell dictionaries installed on the system;

advantages:

can use hunspell dictionaries present on the computer
can download dictionaries from the web and store them on the computer, so downloading again is not needed (because it has access to disk)
can be potentially integrated with jupyterlab/language-packs; user would only install a language pack to get the UI translation and the spellchecker dictionary (it would be an optional feature, not a must)
is straightforward to set-up using extension cokiecutter
can fetch dictionaries from the disk asynchronously and only when requested

disadvantages

has to be distributed via pip/conda (NPM-only distribution is not possible)

Use frontend-extension only, distribute the extra languages as NPM packages:

advantages:

can be distributed via both NPM and pip/conda

disadvantages:

wrapping each language into separate NPM package and then into a python package wrapper for pip/conda will be a maintenance pain
once installed and enabled, all the installed dictionaries will be loaded on startup, providing a performance penalty for users using multiple languages.

Using a dictionary from the web is independent of these strategies (but in the first one we can store it on the disk to get better load times).
Overall I believe we should have a server extension rather than a manager on the frontend. However, if you already started re-structuring the code to use ILanguageManager, it may be beneficial either way (it can improve the code clarity). What do you think about it?

See #49. My point is that splitting things on the frontend is not sufficient to solve the issues we face and having a server extension is the better way. I am happy to help with this.

Oh, I'm not far in the implementation. I was thinking of a server extension as well. For me it is not really clear how we should   distribute at least some of the main languages in a pip/conda setup. I mean where is the place in the jupyterlab structure where the user can store the data? If we can create a fixed directory which can be access by the server extension and which we can fill with pip packages, this is working.

Oh, I'm not far in the implementation. I was thinking of a server extension as well.

That's great! Happy to take a look at some time.

I mean where is the place in the jupyterlab structure where the user can store the data? If we can create a fixed directory which can be access by the server extension and which we can fill with pip packages, this is working.

I do not remember the exact path at the moment, but I believe it would be best answered by @goanpeca

Okay, then I will look at the server extension. Following the examples it is not very complicated. Web APIs is not unknown to me ;-)


Chore/upgrade to 5.4 resolves #336

resolves #336

Cool. In case you need changes to scene 25 please shortly sync with me since I have open changes there that would probably not be mergeable.

@10FingerArmy there are no scene changes to 025 so you shouldn't be affected :)

From a risk management perspective I'd probably not include this change shortly before the 2.2 release but right afterwards so that we gather some feedback from the community first.


Create Secretive Thread

I am stumbling blindly through github to try and add a thread to the repo 🤣
If I have screwed this up would you mind messaging me on telegram please
https://t.me/LordSecretive

Hey hey, can you add it to the existing threads.md file ? :)


Use hdf5-metno fork and netcdf-sys

[x] I agree to follow the project's code of conduct.
[ ] I added an entry to CHANGES.md if knowledge of this change could be valuable to users.

Use the netcdf-sys crate to automatically link the correct netcdf-c
Use the more updated fork of hdf5-rust, as the original crate has not had a release for quite some time https://github.com/aldanor/hdf5-rust/issues/295

r? @weiznich

Thanks, this does clean up the build script a little!


Missing metrics data in RDS while using KFPv2

Describe the bug
Vishnu Paspunoor
12:33 AM
Hi all,
I'm using kubeflow with rds, s3 and cognito. Any idea how to upload the pipeline metrics into RDS in KFP SDK v2? I could see the metrics in the run_metrics table when I tried v1 but there are no entries while using scalar metrics in v2.
v1 example: https://www.kubeflow.org/docs/components/pipelines/sdk/pipelines-metrics/
v2 example: https://www.kubeflow.org/docs/components/pipelines/sdk-v2/python-function-components/#example-python-function-based-component
Tried this too
https://www.kubeflow.org/docs/components/pipelines/sdk/output-viewer/#scalar-metrics
Additionally, the run outputs tab doesn't show any data in v2
Steps To Reproduce
Expected behavior
A clear and concise description of what you expected to happen.
Environment

Kubernetes version
Using EKS (yes/no), if so version?
Kubeflow version
AWS build number
AWS service targeted (S3, RDS, etc.)

Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Here are some additional details
Steps To Reproduce
Execute these examples in kubeflow and query the run_metrics table in the mlpipeline database on RDS mysql
Expected behavior
Run metrics are expected to be present in the run_metrics table
Environment
Kubernetes version: 1.21
Using EKS (yes/no), if so version? yes 1.21
Kubeflow version: 1.51
AWS build number
AWS service targeted (S3, RDS, etc.): RDS
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

@vishnuisu I will attempt to re-create this behavior and get back to you asap

@vishnuisu From what I'm seeing looks like metrics are not supported in v2 https://github.com/kubeflow/pipelines/issues/6132