Hooks

Description
I've add 3 hooks, I made a first PR to know if everything seems good to you, because I plan to add hook for every function
Added:

[x] useBatteryLevel() hook
[x] useBatteryLevelIsLow() hook
[x] usePowerState() hook

Compatibility

OS
Implemented

iOS
✅

Android
✅

Windows
❌

Checklist

[x] I have tested this on a device/simulator for each compatible OS
[x] I added the documentation in README.md
[x] I mentioned this change in CHANGELOG.md
[x] I updated the typings files (privateTypes.ts, types.ts)
[x] I updated the dummy web/test polyfill (default/index.js)
[x] I added a sample use of the API (example/App.js)

Hmm - looks neat but I wonder about the possible code expansion - will this effectively double the size of the library? We're already starved for maintainers and that's a pile of new code.
Or is this just for events?

@mikehardy In the current case of this PR, I've implemented it just for the events because it's the more common use case for hooks (due to the possible update of the data, and the need of the component to re-render).
It can also be implemented on the other async functions, but you're right that's going to add some code for each function. So, it's lees needed on these functions, because the value is updated just one time. Hook can be created by library users if you want less to maintain.
As an example, each async hook for the other function should look like this:
export function useSerialNumber(): string | null {
  const [serialNumber, setSerialNumber] = useState< string | null>(null);

  useEffect(() => {
    const setValue = async () => {
      const value: string = await getSerialNumber();
      setSerialNumber(value);
    };

    setValue();
  }, []);

  return serialNumber;
}

Ok - I can imagine a good use case here for the events, and I'd be willing to merge that, but holy boilerplate batman, that's a lot of code for a marginal use case on the others, I'd like to avoid that for now. Maybe if we had a code generator or something ;-)
If I were to merge something that was for event only, is this PR already complete, or is there something more you'd add to it before review?

@mikehardy Ok seems good to me, I totally understand ! :) Yes a code generator should be enough for the other ones.
In this PR, I've just put the hook for the events, everything should be good if you want to review it and merge it !

I'll do a little more local testing, but it looks good to me - thanks for this! I have read all about hooks but not used them yet, appears to be a much easier way to listen for events when consuming the library's API

released!

Perfect, thanks a lot! :)


Remove 'jediEnabled' in favor of languageServer

For #7010
Rely on languageServer instead.

[X] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[X] Title summarizes what is changing.
[X] Has a news entry file (remember to thank yourself!).
[X] Appropriate comments and documentation strings in the code.
[X] Has sufficient logging.
[X] Has telemetry for enhancements.
[X] Unit tests & system/integration tests are added/updated.

-   [ ] Test plan is updated as appropriate.
-   [ ] package-lock.json has been regenerated by running npm install (if dependencies have changed).
-   [ ] The wiki is updated with any design decisions/details.

Codecov Report

Merging #11834 into master will decrease coverage by 0.30%.
The diff coverage is 82.92%.

@@            Coverage Diff             @@
##           master   #11834      +/-   ##
==========================================
- Coverage   60.67%   60.36%   -0.31%
==========================================
  Files         628      631       +3
  Lines       33908    34151     +243
  Branches     4775     4794      +19
==========================================
+ Hits        20573    20615      +42
- Misses      12344    12531     +187
- Partials      991     1005      +14

Impacted Files
Coverage Δ

...rc/client/activation/node/languageClientFactory.ts
38.09% <ø> (ø)

src/client/common/featureDeprecationManager.ts
40.90% <ø> (ø)

src/client/common/types.ts
100.00% <ø> (ø)

src/client/telemetry/index.ts
85.21% <ø> (ø)

src/client/testing/common/updateTestSettings.ts
96.49% <ø> (-0.24%)
:arrow_down:

...nt/languageServices/proposeLanguageServerBanner.ts
64.91% <25.00%> (+0.62%)
:arrow_up:

...ent/activation/node/languageServerFolderService.ts
55.55% <33.33%> (+5.55%)
:arrow_up:

...t/activation/common/languageServerFolderService.ts
95.52% <77.77%> (-2.79%)
:arrow_down:

src/client/activation/activationService.ts
74.54% <100.00%> (-12.82%)
:arrow_down:

...tion/languageServer/languageServerFolderService.ts
100.00% <100.00%> (+14.28%)
:arrow_up:

... and 40 more

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 66600e3...058e032. Read the comment docs.

Failed DS in insiders fails in other PRs too.

Perhaps I'm not seeing it, but where is the bit that transitions existing settings to the new one? E.g., if jediEnabled was explicitly set, switch them to Jedi or Microsoft.

As mentioned in #7010, previous versions of the "python.jediEnabled" setting should be migrated automatically.
But this doesn't seem to happen, jediEnabled = False from previous version wasn't automatically migrated to languageServer = True here. This may confuse some users.

This PR intended to do this. Does it not work?

Nope, it didn't happen here. I used to have jediEnabled as false (no idea what languageServer was set to), after the update languageServer is still Jedi).

That's not good; I'd appreciate it if you could make a new issue for it so it can be tracked.

I would like to get reliably reproducible steps first, but it seems Python extension doesn't offer old versions?
"Install another versions.." returns 404:

Never mind, I manually installed an older version and reproduced it. Created a ticket at #12429.


feat: integrate jest-preview to moaijs test

Features

[x] Integrate Jest Preview to Moai (PoC). Preview button component.
[x] Speed up Jest tests  by using @swc/jest instead of tsc. See comparison table in the comment.

How to run locally
yarn
yarn jest-preview
yarn test --watch button

Screenshots

Light mode:

Dark mode:

TODO:

[ ] Ask authors if they want to integrate jest-preview into their lib.
[ ] Open a PR to speedup Jest tests, add a "before and after" comparison table about execution time (re-commit, New PR)

Integrating @swc/core to moaijs reduce the test execution time
Results measure on Macbook Pro 2019, running all tests (5 test suites, 22 test cases).

Time to finish all tests

tsc
11.5s

@swc/jest
6.0s

Conclusion: @jest/swc is faster than tsc when it comes to jest 91.6%


⚠ SceneTime has degraded performance

In 17d8f24, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 3147 ms

Resolved: SceneTime performance has improved in 0ef02a5 after 8 minutes.


Price devices distinctively in scheduling

Based on #615, this feature allows specifying price sensors per device, flexible or unflexible.
In the flex-contextparameter, we already have consumption-price-sensor and production-price-sensor. They will remain the default (see https://flexmeasures.readthedocs.io/en/latest/api/notation.html#flex-context).
New parameters consumption-price-sensors-per-device and production-price-sensors-per-device can optionally be added to overwrite this default, so that some devices are priced by other price sensors. These parameters are dicts, mapping the power sensor IDs of devices (assets) to price sensor IDs.
TODO:

[ ] Adapt FlexContextSchema (in data.schemas.scheduling.__init__.py). This should suffice to make the API parse these new parameters and pass them on.
[ ] Also add these parameters to the CLI command flexmeasures add schedule for-storage (in cli/data_add.py), so they end up in flex_context (line 1054ff). This should help with testing locally.
[ ] Get prices for these distinct price sensors from the database in data.models.planning.storage.py::StorageScheduler.compute_schedule() (also add the price slope trick for these) and pass them on to device_scheduler(). I'd say we keep them as a dict until here
[ ] In device_scheduler, we need to adapt the model so that per device (denoted by "d" in the ConcreteModel), the correct price is applied. I believe the best places are price_down_select() and price_up_select().
[ ] Add a scheduling unit test. Idea: In data.models.planning.test_solver.py::test_building_solver_day_2(), we could add a market_scenario parameter for the case that the price for solar (feed-in tariff) is much higher than the tariff used by the battery (the default). Then we can expect the battery to never charge. The pytest fixture create_test_tariffs might be a good place to add the extra price sensor and data.
[ ] Add documentation for the new parameters, in the flex context description.
[ ] Bonus: Adding an integration test with the API (api.v3_0.tests.test_sensor_schedules.py), which is crucial for the actual operation. However, the existing tests are not including the flex context a lot, anyway, so I can't demand it from you now.

I have only an implementation detail / clarification to add. I don't think the new prices per device should overwrite the price that can be set currently.
The current price is being applied to the aggregate power flow of the whole portfolio of devices being scheduled. This represents, for example, a building's net power flow to/from the grid.
The new price per device should be applied to the power flow to/from a single device and should be implemented as an additional costs, imo. This represents, for example, a device's usage-dependent depreciation costs.

I see how you came to this, but I guess one does not have to view the portfolio as aggregated (on one contract). That seems to be our default view (like, for a building or industrial site), but maybe it does not apply always. In fact, the intention here seems to be that the individually-priced devices are not part of the portfolio. Maybe that can be clarified by stakeholders.
If the two signals are vastly different (two different price curves), the original intention would become harder to maintain (one would need to compute the difference between these two independent price curves).

I added a TODO item, so this feature is also available through the CLI.

hi @nhoening I was trying to implement the toy example using the API endpoints so that i can extend it to do the above changes discussed in the issue. All the endpoints are working fine except for the /api/v3_0/sensors/(id)/schedules/trigger which is used to create the schedule.
It gives an "[Error 99 connecting to localhost:6379. Cannot assign requested address]"
This seems to be an error regarding the redis configuration ( judging by the port number) but the toy example is working fine with CLI .

Hi @Srieon, the toy example using the CLI would by default not require Redis, as the --as-job parameter is False per default.
The API expects to be able to queue jobs for execution, so a Redis node is needed. You can also run one via Docker, btw, see the Docker-compose file.

hey @nhoening I was trying to access the trigger endpoint  "/api/v3_0/sensors/(id)/schedules/trigger"  with the request body consisting of both consumption-price-sensor and production-price-sensor. It throws an error if one of them is missing . Ideally shouldn't they both be same. I can see that at various places you have implemented that if consumption-price-sensor is missing consumption-price-sensor =production-price-sensor. But this endpoint doesn't have that . Is there a reason for it ? Could I just add that line so that my request body only requires one price sensor?

Hi @Srieon, I agree that often they are the same.
I see that in the CLI command production prices default to consumption prices, but right now I don't see where else we do that.
The endpoint code would not be the best place to do that, as it doesn't parse the flex context. This point where we actually do that would be better. (and then the line in the CLI command might be able to go).
And we should document this defaulting better in the relevant documentation.
Supporting this defaulting better could be a small PR in itself, actually.
Does this help?

Hi @nhoening, the first couple of items to modify i.e. adding parameters in order for the API and CLI to parse the new fields for the sensor dictionary. We're stuck in knowing if this makes sense to you. Perhaps I could issue a PR into which we can keep adding commits and you could keep reviewing until all of these criteria are met?
Cc @Srieon

Yes a PR might be a good idea. You can set it to draft status if it's not ready to be merged, but still ask for a review.
P.S. the first sentence of your last post seems to be missing a verb, so I did not get what you were saying there 😃

Ah, yes, sorry, I didn't proofread it. I meant to say that we'd implemented the first two items on the list.

Hello @nhoening
@anirudh-ramesh recently submitted a PR that made changes to parse new prices from distinct sensors to the concrete model. However, I've encountered an issue where the model is currently infeasible because the power selection is not being done. I understand that the objective function with sense=minimise should take care of the price selection, but I'm not sure how to proceed with the power selection to ensure that it happens according to the price selection using the sensor dictionary that associates the power and price sensors.
Can you please provide guidance on how I can make the model feasible and ensure that the power selection happens based on the price selection using the newly added sensor dictionary parameters? I would greatly appreciate any help or advice on this matter. Thank you."

Hi @rajath-09  ― glad to help, but "the power selection is not being done" is for me not specific enough.
Maybe you can share excerpts from a log file, a screenshot or (best) reproducible steps (e.g. a script constructing and running an example), so we can see the problem first hand.
And when you say "currently", what do you mean? In the current state of this PR?

Hi @nhoening
By "the power selection is not being done" ,what i mean is that ,isn't the model supposed to be scheduled according to both the power and price sensor data provided and the association between them?For instance,if for a particular date-time frame,price from particular sensor is selected,isn't the associated power sensor be only selected?
Yes by "currently" i mean the current state of this PR.

Hi @nhoening
I wanted to understand what the "planned_costs" imply in the scheduling algorithm.
For instance if I have solar plants,load,battery and grid, what all costs does the "planned_costs" involve?

Also is there a feature which could be used to get the planned costs for individual assets?

Tagging @Flix6x and @victorgarcia98 here who might get you an answer quicker than I can.

Could you help me out here? @Flix6x @victorgarcia98

Hello Rajath!
The planned cost per device is returned by the function device_scheduler in line 196. You can see how it is computed here. As far as I can see, these planned costs are not saved.

Also is there a feature which could be used to get the planned costs for individual assets?

No. This in itself would be a great feature request, imo, though. It would require something like passing a cost_sensor_id to the scheduler and using it to save the computed costs as well (for total costs). The total costs can be gotten from the model results after it solved. Costs per device are not stored on the model yet, but can be gotten by multiplying the power of each device (which is stored on the model) with the price (also stored). Saving these would require passing some mapping of devices (columns passed to the device_scheduler) to cost_sensor_ids.
If you need to compute these costs with features currently available, you might run a reporter after the scheduler has saved its results. The reporter_config should multiply each schedule with the prices. Bare in mind that reporters are kind of a new feature. A dedicated CLI command for running reporters will be released in v0.14 (it has recently become available on main already).
@victorgarcia98 can sensor_search_configs be used to select only sensor data sourced by the scheduler?

@victorgarcia98 can sensor_search_configs be used to select only sensor data sourced by the scheduler?

At the moment, the sensor_search_configs can take a source id in its values so you could get that.
This could be done using the PandasReporter with a reporter_config similar to the following:
{
    "beliefs_search_configs": [
        {
            "sensor": 1,
            "source" :  1,
            "alias" : "power",
            "resolution" : "PT1H"
        },
        {
            "sensor": 2,
            "alias": "price",
            "resolution" : "PT1H"
        }
    ],
    "transformations": [
        {
            "df_input": "price",
            "method": "droplevel",
            "args": [
                [
                    1,
                    2,
                    3
                ]
            ]
        },
        {
            "df_input": "power",
            "method": "droplevel",
            "args": [
                [
                    1,
                    2,
                    3
                ]
            ]
        },
        {
            "df_output" : "energy_cost_df",
            "df_input" : "power",
            "method" : "multiply",
            "args" : [ "@price" ]
        }
    ],
    "final_df_output": "energy_cost_df"
}


fix(types): allow data-* attributes for props forwarded to HTML elements

Fixes issue #1740, related PR #1739
Best reviewed by commit.
I patched sveld to allow data-* attributes to be passed to components that extend HTML elements.
As a result, data-* attributes should be valid, while other attributes not included in the HTML attributes or component props should still produce a type error:

Fixed in v0.76.1


lexbase: introduce EncAlwaysQuoted fmt flag

This PR won't merge with main but create a separate a new tag.
I set it to be merged against main just to enable code review.
To accomodate an oracle query, we need to quote the object name regardless if it is a reserved keyword or is bare identifier. This is because oracle is case insensitive without quotes. This flag is meant to be used ONLY to construct SELECT stmt for oracle source.
For example, in oracle:
CREATE TABLE "t" ("iD" INT PRIMARY KEY, "AcC" INT)

We have to do
SELECT * FROM "t"

Otherwise we will encounter a "table doesn't exist" error.
Release note: None

Thanks! Closing.


feat: add logging

Description
Move logging of warnings and errors out of the console, and into ExportManager, to be displayed to the user in the export interface

Codecov Report

Merging #18 (1d79261) into beta (b94a2ef) will decrease coverage by 0.46%.
The diff coverage is 70.59%.

:exclamation: Current head 1d79261 differs from pull request most recent head 8925e8c. Consider uploading reports for the commit 8925e8c to get more accurate results

@@            Coverage Diff             @@
##             beta      #18      +/-   ##
==========================================
- Coverage   96.60%   96.15%   -0.45%
==========================================
  Files          28       28
  Lines         558      570      +12
  Branches      127      129       +2
==========================================
+ Hits          539      548       +9
- Misses         18       21       +3
  Partials        1        1

Impacted Files
Coverage Δ

src/translator/common.js
90.70% <ø> (ø)

src/translator/createTEX.js
90.33% <0.00%> (ø)

src/translator/doubleBraces.js
100.00% <ø> (ø)

src/components/ExportDialog/index.jsx
91.12% <66.67%> (-6.32%)
:arrow_down:

src/extension.js
100.00% <100.00%> (ø)


Allow sections to be defined in any order

Today the sections have to be defined in a strict order. This is mostly just because it's easier to implement. It would be better if sections could appear in any order.
cc https://github.com/brson/error-chain/issues/38

Sent you a PR!

Fixed by https://github.com/brson/error-chain/commit/f7110f834fe48c3b2d2d825cf681837a255ed15e


Plans for TinyMCE 5 ?

Question is in the title :)

Currently there are no concrete plans. When and if it happens, it will be in a separate project.

Will you wait for django-tinymce5 to appear before creating a -lite version?

Why? It would be good if someone creates functional and well-maintained package for TinyMCE 5. At the moment of creating this project there wasn't such package for TinyMCE 4 and the original project had its problems.

I’m just asking to get a sense of where this project will go.

I'm going to support Python/Django part, at least in terms of version compatibility and bug fixing, in the near future. As for JavaScript TinyMCE part, the project uses the latest available version of TinyMCE 4.x and it's still a fully functional rich text editor with many features.

OK that answers my question.  Thanks!


In user's Observations page, have Sort by Species/Taxon Name only use scientific name

Currently sorting by Species/Taxon Name in a user's observations page results in some jumbles because whatever is stored in the observation "species_guess" field is what's used for sorting.
@pleary suggests "locking down sort by name to the taxon scientific name, and removing species_guess entirely." I think that's probably the best way to go and would hopfully result in a things sorted correctly.

There's discussion of this a couple years ago starting at this comment https://github.com/inaturalist/inaturalist/issues/540#issuecomment-98795301 . We removed the sort by name option from the drop down, but missed the table header which I think is the only place to sort by name.
Unfortunately we can't implement this right now because observation.taxon.name is indexed as a text field in Elasticsearch and you can only sort on keyword fields. So we'd need to re-index all observations to get it to work right, which is a very large task these days.
I actually vote for remedying our previous oversight, and remove the taxon sort option on that user observation view. I think its the only place we allow a taxon name sort, and clearly its a broken feature. We also have plans to redesign that page to bring it more in line with regular obs search.

+1 for what Patrick said.

The taxon name sort option was removed from that page in #1661


Find an opinionated code formatting tool, like prettier in the JS world

Prettier has an official plugin to format PHP code which might be a good option: https://github.com/prettier/plugin-php
It has some considerations:

We need to check if it does not conflict with Wordpress coding standard, and if it does, we may want to move to PER-2/PSR-12 instead
Prettier is a JS tool. Since the project already has a package.json, we could incorporate yarn to the toolbelt and workflow without a lot of effort, but may be easier to introduce a PHP-based tool.

@acelaya don't feel that we have to use Yarn in every project. For small or less-critical packages, npm may be just fine and can keep the toolchain a little simpler. npm's main downside is that it's lockfile format is less diff-friendly and its terminal output is less well presented.

True! But I with "yarn" I actually meant anything "non-composer" 😅
I'll rewrite it for clarity.

A lot of folks in the WP environment use PHPCS with the WordPress coding standards: https://github.com/WordPress/WordPress-Coding-Standards. Here's the documentation on official WP coding standards, which are encouraged for plugins/themes as well: https://developer.wordpress.org/coding-standards/wordpress-coding-standards/php/

A lot of folks in the WP environment use (PHP CodeSniffer)[https://github.com/squizlabs/PHP_CodeSniffer] with the WordPress coding standards: https://github.com/WordPress/WordPress-Coding-Standards. Here's the documentation on official WP coding standards, which are encouraged for plugins/themes as well: https://developer.wordpress.org/coding-standards/wordpress-coding-standards/php/

That's what the project is currently using, but we need to make sure it fits nicely with the other hypothesis projects, where Python and JS/TS is primarily used.
It's important that anyone on the team can jump-in to work on this and the tooling and workflow feels familiar.
That's preferable even if it deviates from standard WordPress community "ways".


Triage Sobelow findings

Overview
This PR triages all sobelow findings in apps.
Remaining
I am not convinced that the usage of binary_to_term in the below instances is not a security issue. In all of the cases data from the db is deserialized. Even running into a DOS condition could have very negative consequences. Deserialization bugs can often lead to RCE, I am just thinking of JAVA and PHP. Can we explore alternatives?
References
http://erlang.org/pipermail/erlang-questions/2001-July/003372.html (dated)
https://hexdocs.pm/sobelow/Sobelow.Misc.BinToTerm.html#content
Misc.BinToTerm: Unsafe `binary_to_term` - High Confidence
File: apps/omg_db/lib/omg_db/leveldb/core.ex
Line: 114
Function: decode_response:111
Variable: encoded

-----------------------------------------------

Misc.BinToTerm: Unsafe `binary_to_term` - High Confidence
File: apps/omg_db/lib/omg_db/rocksdb/core.ex
Line: 115
Function: decode_response:105
Variable: encoded

-----------------------------------------------

Misc.BinToTerm: Unsafe `binary_to_term` - High Confidence
File: apps/omg_db/lib/omg_db/rocksdb/core.ex
Line: 111
Function: decode_response:105
Variable: encoded

-----------------------------------------------

Does sobelow_skip come in file configuration as well? I prefer it there if it’s an option. Same as we have with dialyzer.

We ignore Config.HTTPS completely but for instance are interested in Traversal issues therefore we have to skip them on a function level.

If we don’t trust decode_response, does that mean we don’t trust inserts as well?
Then this needs to be fixed at the input, not output.
(Though in my opinion it’s not needed).

Coverage remained the same at ?% when pulling 1fa350fcdb0e4227eaab25de6e317f1e98656a89 on sobelow_findings into 98bb24cdf3e700da8b6ee4101cec49fef784a310 on master.


Not compatible with iOS 11

Solved by release 1.0.0

@marmelroy I tried using zip (1.0.0) with Xcode 9 (9.0) and I got the same errors.


HttpObjectEncoder scalability issue due to instanceof checks (Fixes #12708)

Motivation:
Current http encoder logic cause contention over the klass field used by the JIT to speed up instanceof checks vs interfaces,
preventing scaling with multi-core machines.
See https://bugs.openjdk.org/browse/JDK-8180450 for more info.
Modifications:
Code duplication to reduce the arity of the morphism on the instanceof checks on the http encoder.
Removed using encoder inherited methods to take control of the arity of the
call-site  morphism while releasing ref counted http msg types.
Result:
Scalable HTTP encoding

@normanmaurer
I see that
java.class.noLongerInheritsFromClass: class io.netty.handler.codec.http.HttpObjectEncoder<H extends io.netty.handler.codec.http.HttpMessage>: Class no longer inherits from 'io.netty.handler.codec.MessageToMessageEncoder<java.lang.Object>'

but this is key to fix the issue here, the risk is to get the JIT to emit an instanceof vs HttpXXX type and later, on MessageToMessageEncoder another successful one vs ReferenceCounted on ReferenceCountedUtil::release, making the update of Klass cache field to happen again (concurrently).

@franz1981 can you share any numbers that "proof" the gain ?

Yep @normanmaurer I'm going publish both an end 2 end benchmark result and the micro-bench one I've modified in Netty, but I'm trying a different fix too, that won't requires holding any Class field

@normanmaurer
this is techempower plaintext polluting the encode method by sending some chunked response before running the test: both are using full http responses on steady state (meaning that they measure the same things/same application code).

The machine is a 32 cores one, if I'll run the same tests with a single core, I got nearly no slowdown (as expected, given that's a contention issue) - not really, because the "type pollution" still cause instanceof to happen for real, making it slower, but without scalability impacts.

I am trying hard to create a version of this fix that doesn't require any hint re the "full concrete http type" used, making it more transparent for existing users so, please, hold on :)

This is the result of the microbenchmark while using type pollution
(note: although the original benchmark isn't using black holes I've already verified in the assembly that dead-code-elimination isn't happening):
This PR 1 thread:
Benchmark                                   (pooledAllocator)  (typePollution)  (voidPromise)   Mode  Cnt        Score        Error  Units
HttpRequestEncoderBenchmark.chunked                      true            false           true  thrpt   10  1036698.667 ±   8107.867  ops/s
HttpRequestEncoderBenchmark.chunked                      true             true           true  thrpt   10   905807.417 ±  13772.428  ops/s
HttpRequestEncoderBenchmark.contentLength                true            false           true  thrpt   10  1561759.238 ±  10901.522  ops/s
HttpRequestEncoderBenchmark.contentLength                true             true           true  thrpt   10  1299413.850 ±  26776.253  ops/s
HttpRequestEncoderBenchmark.differentTypes               true            false           true  thrpt   10   440180.570 ±  14614.238  ops/s
HttpRequestEncoderBenchmark.differentTypes               true             true           true  thrpt   10   443385.537 ±  20332.729  ops/s
HttpRequestEncoderBenchmark.fullMessage                  true            false           true  thrpt   10  2642338.894 ± 110718.503  ops/s
HttpRequestEncoderBenchmark.fullMessage                  true             true           true  thrpt   10  2324594.524 ±  22424.194  ops/s

This PR 6 threads:
Benchmark                                   (pooledAllocator)  (typePollution)  (voidPromise)   Mode  Cnt         Score        Error  Units
HttpRequestEncoderBenchmark.chunked                      true            false           true  thrpt   10   4769551.449 ± 142854.608  ops/s
HttpRequestEncoderBenchmark.chunked                      true             true           true  thrpt   10   4477651.779 ± 419351.979  ops/s
HttpRequestEncoderBenchmark.contentLength                true            false           true  thrpt   10   7776615.466 ± 225903.978  ops/s
HttpRequestEncoderBenchmark.contentLength                true             true           true  thrpt   10   6278694.334 ± 515945.343  ops/s
HttpRequestEncoderBenchmark.differentTypes               true            false           true  thrpt   10   1964309.534 ±  69229.190  ops/s
HttpRequestEncoderBenchmark.differentTypes               true             true           true  thrpt   10   2041805.064 ±  61923.201  ops/s
HttpRequestEncoderBenchmark.fullMessage                  true            false           true  thrpt   10  10271948.355 ± 558919.801  ops/s
HttpRequestEncoderBenchmark.fullMessage                  true             true           true  thrpt   10  10328800.426 ± 754618.592  ops/s

4.1 1 thread:
Benchmark                                   (pooledAllocator)  (typePollution)  (voidPromise)   Mode  Cnt        Score       Error  Units
HttpRequestEncoderBenchmark.chunked                      true            false           true  thrpt   10   968151.152 ± 52872.773  ops/s
HttpRequestEncoderBenchmark.chunked                      true             true           true  thrpt   10   887903.816 ± 17644.514  ops/s
HttpRequestEncoderBenchmark.contentLength                true            false           true  thrpt   10  1445556.948 ± 46657.318  ops/s
HttpRequestEncoderBenchmark.contentLength                true             true           true  thrpt   10  1174235.130 ± 39772.138  ops/s
HttpRequestEncoderBenchmark.differentTypes               true            false           true  thrpt   10   377020.952 ±  5622.663  ops/s
HttpRequestEncoderBenchmark.differentTypes               true             true           true  thrpt   10   367732.657 ±  2173.944  ops/s
HttpRequestEncoderBenchmark.fullMessage                  true            false           true  thrpt   10  2467141.212 ± 99167.623  ops/s
HttpRequestEncoderBenchmark.fullMessage                  true             true           true  thrpt   10  1500541.983 ± 18486.408  ops/s

4.1 6 threads
Benchmark                                   (pooledAllocator)  (typePollution)  (voidPromise)   Mode  Cnt         Score         Error  Units
HttpRequestEncoderBenchmark.chunked                      true            false           true  thrpt   10   4246375.439 ±  238607.376  ops/s
HttpRequestEncoderBenchmark.chunked                      true             true           true  thrpt   10   2948854.203 ±  123797.386  ops/s
HttpRequestEncoderBenchmark.contentLength                true            false           true  thrpt   10   5507903.362 ±  194094.645  ops/s
HttpRequestEncoderBenchmark.contentLength                true             true           true  thrpt   10   3505617.988 ±   77168.404  ops/s
HttpRequestEncoderBenchmark.differentTypes               true            false           true  thrpt   10   1344402.158 ±  113718.579  ops/s
HttpRequestEncoderBenchmark.differentTypes               true             true           true  thrpt   10   1376816.001 ±   49867.836  ops/s
HttpRequestEncoderBenchmark.fullMessage                  true            false           true  thrpt   10  10582142.810 ± 1443464.906  ops/s
HttpRequestEncoderBenchmark.fullMessage                  true             true           true  thrpt   10   2765103.925 ±  148623.873  ops/s

Few notes:

the PR improve the single thread case too
scalability is greatly improved, especially with type pollution (see fullMessage)

@chrisvest ready to go :)
Both end 2 end and microbenchs agree that the scalability issue is solved :)

weird failure on
Build PR / windows-x86_64-java11-boringssl (pull_request)

@normanmaurer @chrisvest how to re-run the validations/just that validations?

It's unfortunate we have to play tricks like this, as the control flow was already hard to follow, and now that part is even worse.

Agree, and it's unfortunate that such JDK 'feature" is unlikely to be fixed but still - there's a lesson to learn here too ie using traits to guide a state machine isn't a good idea, because it relies on how good is the runtime to resolve it. With polymorphism is similar, really although a double dispatch/visitor would save the klass caching mechanism to be triggered.
Probably a plain old int/byte field in a single common type acting as a bitset of known "traits" + some switches to choose what to do for each of the implemented traits, is more deterministic regardless what the JIT decide (meaning that it's performance characteristics survive over time/JDK bugs.
Even if I've solved (alleviated, more on this next week) the scalability issue we still get a plain dead O(n) in case we check against a missing trait, that's not ideal.
I would love Netty 5 to not make uses of this mechanism and I can help (@vietj too I believe) to do things differently there

@normanmaurer this is ready to go, unless there are other concerns - I can add more comments to help

Can you just add some link to the PR / openjdk issue somewhere so we not revert this by mistake at some point

Let me add some comments on the PR

@normanmaurer comment added and the issue too is more verbose (with an example that show what's going on)

The benchmark I've made is naive, but is good enough for our purpose I believe - type pollution made upfront just assume LOT of things re JIT and its configuration (and which optimizations should perform)

@franz1981 thanks a lot for all the hard work. I learned something new ❤

@franz1981 can you also do a PR for main ?

@normanmaurer doing it for main too ;)
Although I would later change it there TBH

@normanmaurer doing it for main too ;)
Although I would later change it there TBH
Let's chat on the pr

Agree... but better to be consistent until we d have a better way in main


Add V5 support to BlobID.getLongForm()

Prevent runtime exceptions if this method is used after V5 is enabled.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@19168da). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1020   +/-   ##
=========================================
  Coverage          ?   68.33%
  Complexity        ?     4700
=========================================
  Files             ?      378
  Lines             ?    29843
  Branches          ?     3786
=========================================
  Hits              ?    20392
  Misses            ?     8429
  Partials          ?     1022

Impacted Files
Coverage Δ
Complexity Δ

...src/main/java/com.github.ambry.commons/BlobId.java
86.97% <ø> (ø)
59 <0> (?)

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 19168da...c9a5584. Read the comment docs.

Nice catch. There are a few tests that don't have V4 checks but not V5 (and are probably unsustainable to update when more versions are added). Can you (or @lightningrob ) take a quick look at them to see if they can be fixed quickly? If they can't be, we can leave as is.
BlobIdTest#testBlobIdIsEncrypted()
BlobIdTest#testComparisons()
BlobIdTest#testIsAccountContainerMatch()
AmbryBlobStorageServiceTest#injectionAccountAndContainerForGetHeadDeleteBlobIdTest()
FrontendUtilsTest#testGetBlobIdFromString()


added a formula to build docker 1.6.2

Hi,
I've removed the 'bottle' block and added a revision, as instructed.
Have a good day,

Looks like there's just the one change left:
==> brew style docker162

1 file inspected, no offenses detected
Error: 1 problem in 1 formula

==> audit problems
homebrew/versions/docker162:
 * Formula should have a desc (Description).

Ping?

Hi,
I'm in holidays, no access to a computer until next wednesday.
I'll keep you posted.
Regards,
Le lun. 13 juil. 2015 06:27, Dominyk Tiller<EMAIL_ADDRESS>a
écrit :

Ping?
—
Reply to this email directly or view it on GitHub
https://github.com/Homebrew/homebrew-versions/pull/877#issuecomment-120807895
.

Thanks. No worries, just wanted to check the PR wasn't dead.

Hello,
I added a desc field, as requested:
$ brew style docker162
[...]
1 file inspected, not offenses detected

Merged in https://github.com/Homebrew/homebrew-versions/commit/0a81cfa419000f9818765a6394b94766db2530f2. Thank you for your contribution to Versions, we appreciate it! :smiley_cat:.
Couple of future nits, new formulae should have their commit message styled docker162 1.6.2 (new formula) or similar, and when there's an existing formula in Homebrew/homebrew that installs the same binary/binaries as the new package we need to add a conflicts_with line so people can't link them on top of each other. Thanks!


Update to data 3.0.0

See https://github.com/Senzing/docker-compose-demo/issues/253

Pull Requests:

https://github.com/Senzing/docker-web-app-demo/pull/65


Memory Required for Training

How much GPU memory is required for training? I am using RTX 2080, 11GB. I tried to train on the lego dataset using the config file provided, and I get a memory error.

What parameters need to be changed in the config file to train on low memory?

Having similar issues on an RTX 2070 8GB, what params can be modified to lower GPU memory requirements?
Thanks!

I reduced the batch_size from 4096 to 1024 and it just worked

@apchenstu I was unable to train it on  RTX 2080, 11GB. I then tried training it on Quadro RTX 8000 (48GB) and it took around 20GB of memory on this single GPU. Using the same dataset on the same GPU, I trained Plenoxels and it took around 14GB of memory.
I have tried both methods with different datasets/scans and TensoRF takes more memory for each dataset. The paper shows the complete opposite. Although the final model size is significantly smaller than that of Plenoxels.
I am using the following configuration for training:
n_iters = 30000
batch_size = 4096
N_voxel_init = 2097156 # 1283
N_voxel_final = 27000000 # 3003
upsamp_list = [2000,3000,4000,5500,7000]
update_AlphaMask_list = [2000,4000]
N_vis = 5
vis_every = 10000
render_test = 1
n_lamb_sigma = [16,16,16]
n_lamb_sh = [48,48,48]
model_name = TensorVMSplit
shadingMode = MLP_Fea
fea2denseAct = softplus
view_pe = 2
fea_pe = 2
view_pe = 2
fea_pe = 2
TV_weight_density = 0.1
TV_weight_app = 0.01
rm_weight_mask_thre = 1e-4

Hi, I think it is probably because the number of ray samples scales with the N_voxel_final that results in high memory cost. You may try to reduce the N_voxel_final or try to turn down the number of ray samples by setting nSamples or step_ratio.


Distribute Release API Appears Block Access To Some Apps, Possibly Due to Being Renamed

What App Center service does this affect?
Distribute App Center APIs
Describe the bug
When attempting to create an upload resource and get an upload_url, response is:
{"message":"Forbidden","statusCode":403,"code":"Forbidden"}
To Reproduce
Steps to reproduce the behavior:

Use Steps defined here: https://docs.microsoft.com/en-us/appcenter/distribution/uploading#uploading-using-the-apis

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'X-API-Token: xxxxxxxx' 'https://api.appcenter.ms/v0.1/apps/xxxxx/xxxxx/release_uploads'
Note: this does not appear to be with every app.  This app was recently renamed in App Center using the CLI

Attempted to use the command-line interface with similar results:
appcenter apps set-current xx/FS-xx-xx
appcenter apps show
Error: Command 'apps show' failed with exception "Forbidden"

Too many variables...  Closing for now until I can reproduce reliably


⚠ Samsung has degraded performance

In e991230, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 1942 ms

Resolved: Samsung performance has improved in 60b9d89.


concrete member overridden by abstract with different signature and noSuchMethod

Here's an interesting example with noSuchMethod mocking:
class B {
  foo(int x) => x;
}

class C extends B {
  foo(int x, {int y});

  noSuchMethod(i) {
    print(i.namedArguments);
    return 42;
  }
}

main() {
  var c = new C();
  print(c.foo(123, y: 456));
}

I believe this should be an error, or the call to c.foo should call noSuchMethod. What actually happens in DDC is no mock member is generated (because it sees a concrete member), and it calls B.foo, printing 123. I will need to check what CFE generates, but it may have the same issue.
Dart 1 behavior was to call C.noSuchMethod, printing {Symbol("y"): 456} then 42.
If I move foo(int x, {int y}); to an interface that is implemented by C, then I get the following error from DDC/Analyzer:
[error] Base class introduces an invalid override. The type of 'B.foo' ('(int) → dynamic') isn't a subtype of 'I.foo' ('(int, {y: int}) → dynamic'). (../../../scratch/test.dart, line 9, col 9)

CFE does not issue that error.

CC @leafpetersen @lrhn

Excellent, triaging this to front-end and analyzer (neither is reporting the error right now)

That may be a related issue: https://github.com/dart-lang/sdk/issues/33483.

Fixed in fasta with 40864cc6985f2ea24169c7f832bc82a6d533f48a.

The analyzer now gives an error, but it seems bogus:

error • 'B.foo' ('dynamic Function(int)') isn't a valid override of 'C.foo' ('dynamic Function(int, {int y})'). • a.dart:5:7 • invalid_override

The analyzer now gives an error, but it seems bogus:

error • 'B.foo' ('dynamic Function(int)') isn't a valid override of 'C.foo' ('dynamic Function(int, {int y})'). • a.dart:5:7 • invalid_override

That bogus UX is https://github.com/dart-lang/sdk/issues/37993.

That bogus UX is https://github.com/dart-lang/sdk/issues/37993.


[cPP CHANGE] Services provided by OS v/s TOE

On behalf of CCCS
The question of services provided by the OS and whether such services are part of the TOE or OE is not fleshed out in this cPP. For example, how to define the TOE boundary for an application that relies on Windows IIS (Internet Information Services) to implement web server? Another example, what is the TOE boundary for an application that integrates with a local database (e.g. SQL Server) that is not exclusive to it?

The ITC is still discussing this comment. We believe that all TLS stacks regardless of platform or application provided are sufficiently covered by FDP_DIT_EXT.1 and its associated selections as well as credential storage with FDP_STO_EXT.1. We are also discussing the installation package in TOE boundary discussion.


Sort diagnostics by span before showing them

This is in order to display diagnostic messages ordered by occurrence in the input.
e.g. for the input "x = 10 * y" the following diagnostics are displayed:
(1, 10): Variable 'y' doesn't exist.
x = 10 * y
(1, 1): Variable 'x' doesn't exist.
x = 10 * y
It makes more sense to show them in the reverse order. This pull request orders diagnostic messages by the span property.

Thanks this is awesome!

Thanks this is awesome!


Increase RadioButton's touch area to full width of the view

Really small usability improvement (wrap_content -> match_parent).

I am closing this issue/PR, as it has been migrated to the new repo linked above in the comments. Thank you!


[runner integration - 3] Add initial rspec plugin

This adds the initial logic for integrating rspec with our custom test reporters. This will handle generating the report and publishing it to our services.
See

https://github.com/trunk-io/analytics-cli/pull/253
https://github.com/trunk-io/analytics-cli/pull/254

Follow-up (in progress):

add upload invocation in the workflow
add in missing test count parsing during upload (this is visible on the uploads tab)
direct quarantining
js test runner integration

moved to protox for this PR because for some reason it would fail because protoc was missing when building the CLI target. What's odd is that context-ruby is supposed to be built separately and this PR was a change purely to that.

/trunk merge


minor: list stale returns "[!] No agents currently registered" if no agents are stale

"list stale" command issued when no stale agents are present

after rebooting the agent box and waiting a minute

I could easily say that's a semantic issue, but my first reaction was, oh noe my agents are gone. A message along the lines of, "No currently stale agents", or something along those lines might be a little more appropriate.

This is fixed now.
Thanks!


Packaging and releasing:

creating a wheel package
deploying on testpypi
creating a signed github release
Making the version an input

You will need to set SETUPTOOLS_SCM_PRETEND_VERSION=0.0.1 locally to be able to consume wise-agents


[0.66-stable cherry pick #1025] Make RCTBundleManager's bundleURL a strong property

Please select one of the following

[ ] I am removing an existing difference between facebook/react-native and microsoft/react-native-macos :thumbsup:
[ ] I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos :thumbsup:
[ ] I am making a fix / change for the macOS implementation of react-native
[x] I am making a change required for Microsoft usage of react-native

Summary
Cherry pick of the two commits in #1025.

Nit: It's helpful if you put something like [0.66] - blah blah in the title so I know this is a cherry pick

Nit: It's helpful if you put something like [0.66] - blah blah in the title so I know this is a cherry pick

Good point.


How to solve plastic problem with MFEM?

Hi all
I am a beginner of fem. I want to know if this software MFEM can solve an elastic plastic problems.
If yes, how? Can you give me some examples?
Thanks.

In general MFEM provides the building blocks you will need for that, but we don't have any examples for it. The closest is simple linear elasticity (ex2) and nonlinear hyperelastic model (ex10).

In general MFEM provides the building blocks you will need for that, but we don't have any examples for it. The closest is simple linear elasticity (ex2) and nonlinear hyperelastic model (ex10).


Support for PHP 8.0 class attributes generation

Q
A

BC Break
no

New Feature
yes

Description
Feature that allows attribute generation for classes (methods/properties is the next step)
Either non-arguments attributes and named arguments are supported.
Nested attributes are not supported yet.
You can use it in a few ways:

From plain array

ClassGenerator::fromArray([
            'name' => 'AnyClassName',
            'attribute' => [
                ['FirstAttribute', ['firstArgument' => 'abc', 'secondArgument' => 12]],
                ['FirstAttribute', ['firstArgument' => 'abc', 'secondArgument' => 13]],
                ['SecondAttribute'],
            ],
        ])

From array with builder instance

/**
@ var AttributeGeneratorBuilder $builder
*/
ClassGenerator::fromArray([
            'name' => 'AnyClassName',
            'attribute' => $builder,
            ],
        ])

From class reflection

$classGenerator = new ClassGenerator();
$attributeGenerator = AttributeGenerator::fromReflection($reflectionClass);

$classGenerator->setAttributes($attributeGenerator);

From builder

$classGenerator = new ClassGenerator();
$builder = new AttributeGenerator\AttributeBuilder();
      $builder
          ->add('LaminasTest\Code\Generator\Fixture\AttributeGenerator\AttributeWithArguments', [
              'stringArgument' => 'any string',
              'intArgument' => 1,
              'boolArgument' => true,
          ])
          ->add('LaminasTest\Code\Generator\Fixture\AttributeGenerator\SimpleAttribute');

      $builder = AttributeGenerator::fromBuilder($builder);
      $generator->setAttribute($builder);

@Ocramius

Sorry, didn't get to work on this at all, due to other priorities.

After digging further into this, I decided to skip it for 4.8.0.
Specifically, I would simplify the AttributeGenerator to use a ValueGenerator or similar internally, instead of the current AttributeAssembler logic.
I understand that you wanted to split generator and data structure, but practically, it doesn't really help with the use-case of this library, IMO.
What I'd end up with in the end is probably a single class with a thin public API, and a lot of private and @internal API to start with:

AttributeGenerator::fromReflection(Reflector): list<AttributeGenerator> (unsure about it - the API seems a bit messy)
AttributeGenerator::fromValue(object $attribute): self
AttributeGenerator#generate()

Everything else would be private or @internal in a first iteration.
Therefore needing to put this patch aside: it needs a good weekend of thinking it through, which I didn't manage to find, sorry.

Hello. 👋🏻
Is there anything I can do to help moving this PR forward? I'm working on a small code generator tool at the moment and I need the ability to emit class and property attributes.

Sorry, I have no time to work it out, I'll try to close this next month.

If there is no objections I would pick this up, make the requested changes and see to add method support along the way.

AttributeGenerator::fromValue(object $attribute): self

I don't understand this object type parameter, there is AttributePrototype for it
I haven't used ValueGenerator 'cause this class is too complex and terrible to maintain
@kitsunet I've pushed some changes

Cool, thanks! I guess I'll wait for ocramius verdict then and start in parallel to create changes for class members and methods on top of this.

I've already started working on methods :scream:

Hi, any updates on this?

Hi, any updates on this?

I'm waiting for @Ocramius review

@Ocramius ??

This PR is already 17mo old almost 1 and a half years, still waiting for @Ocramius re-review for 7mo now.
Can there be anyone else doing the CR?
Attributes have existed in PHP since 8.0 which is so old that not even supported anymore.
I understand someone may not have enough time, but at least please help to find another person to do the code review.

@Ocramius

Colleagues, what the current status of this PR, as I can see, this feature is awaited by many developers.

I'm still waiting for @Ocramius review

Is there anyone else that could review this?

Sorry, but it's a joke at this point, two years have passed.


In file included from _cgo_export.c:3: /usr/local/include/stdlib.h:134:25: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]

What version of Go are you using (go version)?

$ go version
go 1.13

### What did you do?
mac os upgrade to 10.15 catalina

### What did you see instead?
# runtime/cgo
In file included from _cgo_export.c:3:
/usr/local/include/stdlib.h:134:25: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:134:25: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:134:25: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:135:22: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:135:22: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:135:22: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:136:23: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:136:23: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:136:23: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:139:20: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:139:20: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:139:20: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:141:26: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:141:26: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:141:26: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:141:45: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:141:45: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:141:45: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:142:59: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:142:59: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:142:59: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:142:73: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:142:73: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:142:73: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:141:6: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:141:6: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:141:6: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:147:25: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:147:25: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:147:25: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:147:6: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:147:6: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:147:6: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:156:23: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:156:23: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:156:23: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:157:26: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:157:26: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:157:26: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:157:52: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:157:52: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:157:52: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:158:21: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:158:21: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:158:21: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:158:46: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:158:46: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:158:46: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:160:18: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:160:18: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:160:18: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:161:43: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:161:43: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:161:43: note: insert '_Nonnull' if the pointer should never be null
/usr/local/include/stdlib.h:161:57: error: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Werror,-Wnullability-completeness]
/usr/local/include/stdlib.h:161:57: note: insert '_Nullable' if the pointer may be null
/usr/local/include/stdlib.h:161:57: note: insert '_Nonnull' if the pointer should never be null
fatal error: too many errors emitted, stopping now [-ferror-limit=]

This is a Catalina issue, a C program will generate the same warning. Anyway this is #35247. Please upgrade to Go1.15. Closing here.


Error details and merging/composing

For specifics reasons, which I will explain later, I need to propogate the error details up the run chain. Currently when AI merge errors, it merges the details from the composed AI (or errors.merge! call) as translated messages. But I'm wonder if it would be possible to keep track of all the merged details by their base?
So, today, you have attribute, and error/message.
Perhaps we can keep a hash, called composed_errors or something that looks like this:
{
  Payment => ActiveModel::Errors,
  PaymentCharge => ActiveModel::Errors,
  Invoice => ActiveModel::Errors
}

When you merge, it will do as it does today and merge translated messages into the Errors object on the current AI. It however will also save the original (or dup'd) Errors class. If the keys conflict, it will merge the two ActiveModel::Errors together (since it's the same base).  I think we can just modify the AI::Errors class to contain another hash inside to keep track of the original Errors.
The reason why I need this is because I use compose/errors.merge! a lot and at the topmost interaction, I need the error detail keys to print specific errors for the top most interaction (or rather, from the perspective of the topmost interaction).  For example, let's say I have a Payment model. If the associated user on that Payment doesn't have enough money, then the error added would be: errors.add(:user, :not_enough_money). This is great at the payment level, but when you're 3 levels up, you don't want User does not have enough money as the error message, you want You do not have enough money. And the only I can see doing this is keeping the original error details, such that when I do the translate at the topmost level (topmost interaction), the translate key can be something like: en.activeinteraction.invoice.payment.not_enough_money.
Let me know your guys' thoughts. I can work on the PR.

Also, I believe this can help the error merging caveat:

When a composed interaction fails, its errors are merged onto the caller. This generally produces good error messages, but there are a few cases to look out for.

For those who care to handle it themselves.

outcome = CreateInvoice.run(....)
outcome.composed_errors.each do |base, errors|
  # I now have access to the base as well as all of its original error details. I can then use these two to build the translation key myself.
end

This has some things in common with #245. I hesitate to make compose more complicated. For these complex interactions, would it make sense to use run directly instead of compose?

The problem isn't really with compose, it's more with errors.merge!--which compose happens to call. We do call run in some cases, but we still have to do errors.merge!, and it's there that you lose the base/details.

What I'm proposing is simply keeping track of the original Errors objects as we compose/merge! errors.

Our current error merging does have a pretty unfortunate caveat. It seems like we need a way to map errors when  merging/composing. Depending on an entire history of errors seems like it would be brittle. If someone changed how an interaction  layers down works we wouldn't want it to break everything above it.

I think I might not be explaining things clearly... because what I'm proposing really has no impact on hows things work today. errors.merge! would continue to function the way it does. What I'm suggesting is an additional composed_errors accessor along side errors on interactions. When someone calls errors.merge! (or if it's called through compose), then we simply append to the composed_errors hash. This has would simply be a mapping of base objects to their original Errors object.
For example, let's say we have 3 layers of interactions, the composed_errors method on the topmost interaction would return the following:
{
  InteractionAction1 => ActiveModel::Errors,
  InteractionAction2 => ActiveModel::Errors,
  InteractionAction3 => ActiveModel::Errors,
}

The composed_errors hash could also contain errors from AR models...
{
User => ActiveModel::Errors,
InteractionAction1 => ActiveModel::Errors,
InteractionAction2 => ActiveModel::Errors,
InteractionAction3 => ActiveModel::Errors,
}
If you merge Errors and its base object already exists on the composed_errors hash, it would be merged into that Errors object.

I get that it's new functionality. I'm not convinced knowing the inner details of the call chain will produce a good result. What if the 3rd interaction that's nested in the 2nd interaction gets swapped for some new interaction. The same error is returned but the field is named something else now. Suddenly your top level interaction is broken because it knows too much about the ones below it.
If we let each level understand and map errors from the calls it makes then you'll never have to worry about breaking more than one level from the composed interaction.

I understand your concerns. I think I'll solve my problem another way. Thanks for the feedback!


！help

Something going wrong!Look the picture below.Have a nice day!

It looks like you're trying to read in grayscale (i.e., single-channel) images, while the data class, transforms and model were written for RGB (i.e., 3-channel) images. Easiest solution, you could just repeat the image three times to create a 3-channel input.
But you'll have to play around with it a bit yourself.

You are kind and patient.But It is still difficult to me.I can’t seem to find the crux of the problem.That's my picture input and has already repeated three times.Can you give me more detailed advice?

I didn't mean you should copy it in your file system. I meant that you should transform grayscale images to RGB images on the fly. You can do that, e.g., in this line: https://github.com/mkirchler/transferGWAS/blob/master/feature_condensation/feature_condensation.py#L383 by replacing it with something like img = Image.open(p).convert('RGB') (not tested).
Also, just a heads up - you will need many more data points than ten for any GWAS to work reasonably well (or the LMM software even to run).


Text cut off in GPG login screen.

See the line of text "Skip the..." which has cut off characters.

This is on Android 9, with a Xioami Mi A3 device.


SP-2961- Backport of [PDI-15635] - Changed implementations of collections, which are used …

…in multithreaded environment im order to get proper synchronization and better performance.

Build Completed
:x: This pull request has errors. They will need to be addressed before it can be accepted. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f core/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f core/build.xml jacoco-integration checkstyle publish-local
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  core/src/org/pentaho/di/core/logging/LogChannel.java
  core/src/org/pentaho/di/core/logging/MetricsRegistry.java
  core/src/org/pentaho/di/core/metrics/MetricsUtil.java
  core/test-src/org/pentaho/di/core/logging/MetricsRegistryTest.java
  engine/src/org/pentaho/di/trans/Trans.java

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.logging.MetricsRegistry

Branch Change: -4.76%:small_red_triangle_down:
Complexity Change:  + 16.67%
Instruction Change:  + 2.84%
Line Change:  + 1.48%
Method Change:  + 19.64%

org.pentaho.di.repository.kdr.KettleDatabaseRepositoryCreationHelper

Branch Change: -1.64%:small_red_triangle_down:
Complexity Change: -.69%:small_red_triangle_down:
Instruction Change: -2.43%:small_red_triangle_down:
Line Change: -2.95%:small_red_triangle_down:

org.pentaho.di.trans.steps.excelwriter.ExcelWriterStepMeta

Branch Change: -1.28%:small_red_triangle_down:
Complexity Change: -.79%:small_red_triangle_down:
Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -1.18%:small_red_triangle_down:
Complexity Change: -1.35%:small_red_triangle_down:

org.pentaho.di.trans.steps.randomvalue.RandomValueMeta

Branch Change: -2.17%:small_red_triangle_down:
Complexity Change: -2.17%:small_red_triangle_down:
Instruction Change: -.15%:small_red_triangle_down:

org.pentaho.di.trans.steps.sortedmerge.SortedMergeMeta

Instruction Change: -.18%:small_red_triangle_down:

Integration test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.trans.step.BaseStep

Branch Change: -.30%:small_red_triangle_down:
Complexity Change: -.18%:small_red_triangle_down:
Instruction Change: -.05%:small_red_triangle_down:
Line Change: -.08%:small_red_triangle_down:

License header violations

:heavy_exclamation_mark: Copyright year is not the current year on core/src/org/pentaho/di/core/logging/LogChannel.java. Found 2013. Was expecting 2016

Checkstyle violations
The code submitted is not complying with one or more of our guidelines. To perform these checks locally, please use this tool.
/home/buildguy/project/core/test-src/org/pentaho/di/core/logging/MetricsRegistryTest.java

:heavy_exclamation_mark: Using a static member import should be avoided - org.junit.Assert.assertTrue. at Line: 24

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f core/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f core/build.xml jacoco-integration checkstyle publish-local
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  core/src/org/pentaho/di/core/logging/LogChannel.java
  core/src/org/pentaho/di/core/logging/MetricsRegistry.java
  core/src/org/pentaho/di/core/metrics/MetricsUtil.java
  core/test-src/org/pentaho/di/core/logging/MetricsRegistryTest.java
  engine/src/org/pentaho/di/trans/Trans.java

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.logging.MetricsRegistry

Branch Change: -4.76%:small_red_triangle_down:
Complexity Change:  + 16.67%
Instruction Change:  + 2.84%
Line Change:  + 1.48%
Method Change:  + 19.64%

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change:  + 3.28%
Line Change:  + 3.95%

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change:  + 2.35%
Complexity Change:  + 2.70%

org.pentaho.di.trans.steps.randomvalue.RandomValueMeta

Branch Change:  + 2.17%
Complexity Change:  + 2.17%
Instruction Change:  + .15%

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change: -.07%:small_red_triangle_down:

org.pentaho.di.trans.steps.sortedmerge.SortedMergeMeta

Instruction Change: -.18%:small_red_triangle_down:

org.pentaho.di.trans.steps.symmetriccrypto.symmetriccryptotrans.SymmetricCryptoTransMeta

Branch Change: -3.33%:small_red_triangle_down:
Complexity Change: -1.85%:small_red_triangle_down:
Instruction Change: -.28%:small_red_triangle_down:

Integration test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.trans.step.BaseStep

Branch Change:  + .30%
Complexity Change:  + .18%
Instruction Change:  + .05%
Line Change:  + .08%


[WIP] Fix compilation error on linux

I was getting a compilation error when attempting to compile on Linux.
I tested this on both Windows and Linux, compiles on both. Will probably fail on MacOS, though.
Thanks for adding me as a collaborator, @o2sh!

You can check this
This will only apply to windows

Thanks! I used a combination of the example you provided and ansi_term's documentation to add this.

Do you mind if I update .travis.yml to compile on both Linux and Windows (and possibly OSX)?

Do you mind if I update .travis.yml to compile on both Linux and Windows (and possibly OSX)?

Sure 👍

Travis CI is currently pointing to a cancelled build due to a force push. But this build should effectively be the same.

Sure go ahead, it  should fix #90


Vulkan: Volumetric Fog is reflected too much in SSR

Godot version
4.0 beta 2 and also #66756 rebased against master (57ffc4d82c)
System information
Arch Linux, KDE 5.25.5, NVIDIA GeForce GTX 1060 6GB, NVIDIA Driver 515.76 Kernel 5.19.12-zen1-1-zen
Issue description

It seems to get brighter the further you zoom away from the surface.

Steps to reproduce
Enable Volumetric Fog and SSR in the same scene.
Minimal reproduction project
ssr_volumetric_fog_bug.zip

Hmmm, this seems to me a problem in the order we do things, if SSR is applied after volumetric fog, then SSR simply won't work because the algorithm isn't suitable for reflecting fog. Not sure if this is fixable seeing SSR is a post process while volumetric fog is applied much earlier I think.
@clayjohn your ideas on this?

I've been thinking for awhile that we should move SSR earlier in the pipeline and calculate it at the same time as GI and using last frame's radiance like we do for SSIL.


Fix how the /team page generates contributor data

We've been having periodic issues with the /team page on zulipchat.com losing the "contributors" data that lives at the bottom.  I think a proper fix for this will require some restructuring in how this is run.
Currently, the /team page is generated by tools/update-authors-json, which is a somewhat unreliable tool, as part of the update-prod-static pipeline.
This is bad for several reasons:

We don't want failures in this tool to be able to break deploying a new release, so we potentially ignore failures in production environments.
It is slow and makes deploying new production changes slower.
It means there's no consistency in how often we update.

The right solution for this problem is to run it in a cron job, that can be much more patient (waiting minutes if need be) for GitHub to generate the results, and can complain more loudly if it encounters errors.
As part of this, we should make links to /team/ on non-zulipchat.com servers just go to zulipchat.com (since we won't be including these data in release tarballs, etc.), like we do with /plans.
@hackerkid would you be up for taking point on this fix?

@zulipbot claim


Board view has odd spacing on card titles

It looks like it's using justified text; does not look good on this example:

@vikram-raj an you take a look?

This issue was moved to fabric8io/fabric8-planner#2022


Remove version: Redisant.RabbitMQAssistant version <IP_ADDRESS>

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/chenjing1294/rabbitmq-assistant-release/releases/download/v<IP_ADDRESS>/RMQA-<IP_ADDRESS>-windows.zip
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 911)


AddToCart logic adjustments

[...] AddToCart class works with collection of components.. cleaner will be having class instance per component + auto init. cjs class can contain class name cjs-AddToCart

Originally posted by @vesan-83 in https://github.com/lightna-project/lightna/pull/4#discussion_r1730802819

updateMagentoCartSectionId also could listen add-to-cart event


Add support for text and xpath selector

DevTools Recorder support text and XPath selector from Chrome 108 onwards. I am wondering if there are similar selector in Nightwatch?
Here is the example step's json.
{
      "type": "click",
      "target": "main",
      "selectors": [
        [
          "aria/Proceed to checkout"
        ],
        [
          "[data-test=checkout]"
        ],
        [
          "xpath///*[@data-test=\"checkout\"]"
        ],
        [
          "text/Total: $0.00"
        ]
      ]
    }

This recorder extension is designed to work with Jest and Vitest (soon), so we assume something like JSDOM is implementing DOM APIs. We could use document.evaluate to implement getElementByXpath, as long as the DOM implementation supports this. Otherwise, we could run tests directly in a real browser with something like Karma, Puppeteer, or Playwright.


Expose stack transition progress and when user is swiping via context

This PR exposes transition's progress and when user is swiping via context. Both Animated.Value's are passed as value into two new contexts (i.e. StackAnimationProgressContext and StackAnimationIsSwipingContext). This allows consumers to define custom transitions/animations based on those values. A new example was added in examples directory.

GIF of example

Closes https://github.com/react-navigation/stack/issues/183

I'll have time to update PR this week. Thank you for looking at this.

Updated the PR and added an additional context that expose isClosing.

I'd prefer to use the same context for all gesture related stuff - maybe even move it to the existing context?

I think it's okay for now. Using single context means that we'll need to add additional code for memoizing to avoid consumers updating unnecessarily and I want to keep this simple.
For usage you will probably want to make a hook which uses all these contexts and returns an object anyway, and that's the API we'll go for any v5.


WtD fixit: Readability improvements for a typo issue

https://www.kubeflow.org/docs/upgrading/upgrade/

Remove extra colon ("::") typo

/close


test_prevote_reboot_minority_followers failed

Bug Report
What version of Rust are you using?
rustc 1.29.0-nightly (4f3c7a472 2018-07-17)
What operating system and CPU are you using?
MacOS
What did you do?
run make dev
What did you expect to see?
test failed
What did you see instead?
thread 'raftstore::test_prevote::test_prevote_reboot_minority_followers' panicked at 'assertion failed: `(left == right)`
  left: `true`,
 right: `false`: Sends a PreVote or PreVoteResponse during failure.', tests/integrations/raftstore/test_prevote.rs:90:9
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:71
             at libstd/sys_common/backtrace.rs:59
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:211
   3: std::panicking::default_hook
             at libstd/panicking.rs:227
   4: <std::panicking::begin_panic::PanicPayload<A> as core::panic::BoxMeUp>::get
             at libstd/panicking.rs:475
   5: std::panicking::continue_panic_fmt
             at libstd/panicking.rs:390
   6: std::panicking::try::do_call
             at libstd/panicking.rs:345
   7: integrations::raftstore::test_prevote::test_prevote
             at tests/integrations/raftstore/test_prevote.rs:90
   8: integrations::raftstore::test_prevote::test_prevote_reboot_minority_followers
             at tests/integrations/raftstore/test_prevote.rs:212
   9: integrations::__test::TESTS::{{closure}}
             at tests/integrations/raftstore/test_prevote.rs:209
  10: core::ops::function::FnOnce::call_once
             at /Users/travis/build/rust-lang/rust/src/libcore/ops/function.rs:223
  11: <F as alloc::boxed::FnBox<A>>::call_box
             at libtest/lib.rs:1454
             at /Users/travis/build/rust-lang/rust/src/libcore/ops/function.rs:223
             at /Users/travis/build/rust-lang/rust/src/liballoc/boxed.rs:640
  12: panic_unwind::dwarf::eh::read_encoded_pointer
             at libpanic_unwind/lib.rs:106

Closed by #6320.


Update Only Processor stopped working

The update only process version 10.5 stopped working and shows error GeoEventProcessor(uri=com.esri.geoevent.solutions.processor.updateOnly/UpdateOnlyProcessor/10.5.0) is not available.
Tried redeploying, restarting services and restarting server. But, none of it helped.
Regards
Dinesh Mathur

@DineshAtPowel Did it stop working after you updated to 10.5? You may have to recreate the connector.

Yes, it stopped after updating to 10.5. I have tried recreating the connector that also did not work.
We stopped using 10.5 and reverted back to older version.


way long issues..

Describe the bug
just look at what is going on and help me finish this application.. thanks
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-az28kj
Steps to reproduce
get better
Expected behavior
stop repeating and lossing page content
Screen Recording / Screenshot
none
Platform
Browser name = Chrome
Full version = <IP_ADDRESS>
Major version = 130
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36 Edg/<IP_ADDRESS>
performance.memory = {
  "totalJSHeapSize": 85624589,
  "usedJSHeapSize": 81308405,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Username = Rubling66
Chat ID = bfd362faa5a9

Additional context
Error:
An error occured while streaming this message.
```chech the log

@Rubling66 thanks for your patience during this beta period! This issue is being tracked and investigated in #1022 so please subscribe there for updates!


mono_t2 error and not included

I am new to matlab (student version), new to github, and also new to qMRLab. Hopefully my report is valid and you can help me.

'mono_t2' is not included in qMRLab-2.3.0. Thus, https://qmrlab.readthedocs.io/en/master/mono_t2_batch.html can not be executed as described.

Manual download and adding 'mono_t2.m' to 'qMRLab-2.3.0/src/Models/T2_relaxometry' does not work either: Following Error:

Running 'qMRLab' produces the following Error output

Unrecognized method, property, or field 'getLink' for class 'mono_t2'.
Error in mono_t2 (line 70)
obj.onlineData_url = obj.getLink('https://osf.io/kujp3/download?version=1','https://osf.io/ns3wx/download?version=1');
Error in qMRLab>qMRLab_OpeningFcn (line 93)
Model = Modelfun();
Error in gui_mainfcn (line 220)
feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:});
Error in qMRLab (line 37)
gui_mainfcn(gui_State, varargin{:});

Executing CLI
Model = mono_t2;
Error Output:

Unrecognized method, property, or field 'getLink' for class 'mono_t2'.
Error in mono_t2 (line 70)
obj.onlineData_url = obj.getLink('https://osf.io/kujp3/download?version=1','https://osf.io/ns3wx/download?version=1');

What did I do wrong? Is there a solution?
Thank you in advance!

Hi @little-ear, mono_t2 was added on release 2.4.0, can you give it a try with that version? On the latest doc, you can use the binder badge on mono_t2 to try it out on your web browser.
Our documentation points to the latest (master), but now I am convinced that I'll build and push versions for previous releases (from 2.3.0 on). This is the documentation for v2.3.0, as you can see,mono_t2 is not there.

And congrats on your first issue 🎊 :)

Indeed, in the lower right corner are the "versions" of the documentation and I missed to check it! Thank you.


Commit spoofing allowed?

If I change my name and email address and push commits, Pantheon accepts them verbatim even though that email is not one of the repo users.  Would it make sense to check the commit email address against accounts with access to the repo?  Apparently, only the terminus session is used to authenticate.

Apparently, only the terminus session is used to authenticate.

Pantheon only allows authorized accounts to push commits into a Pantheon project. This is done via SSH Key authorization, so if you've previously set that up, it may seem like there isn't an authorization step.
An authorized user are allowed to  push commits authored by non-project committers as that allows pulling commits from open source projects and upstreams.

I do have SSH passwordless authorization set up but shouldn't Pantheon still check the terminus session against the accounts that have permission on the repo?  I should not be allowed to authenticate with terminus and then push a commit on a repo that doesn't authorize that account.  Has anyone on the Pantheon team actually tested this yet?

@uberhacker Sorry, I must be confused by the problem you're describing. If this involves a security or privacy issue, you should open a support ticket through the Pantheon Dashboard.

This is definitely a security issue and should be addressed.  I don't believe opening a support ticket via the Pantheon dashboard is going to resolve this terminus cli related session issue.

@uberhacker I think there may be confusion in the difference between how Terminus Authenticates and Git Authenticates. When you perform terminus auth commands on your Terminus Session, it does not affect your SSH keys which are used by Git. Regardless of how you authorize/deauthorize Terminus, you will still be able to push git commits to any Pantheon account that you have added your public SSH key to.
If there is a situation in which you are able to push Git commits to an account that is not authorized by your public SSH Key, definitely open a support ticket with the two different accounts and sites you are using and the steps to reproduce the issue.
If you believe this involves the Terminus session, can you please provide the commands or steps one can take to reproduce the issue?
Thank you for helping me understand the issue.

@bensheldon, thank you for a proactive approach to solving this important issue.  Let's forget about SSH for a moment and concentrate on terminus alone.  Regardless of whether I have added ssh keys on my Pantheon account, I should never be able to push a commit from one account to another.  Pantheon (not ssh) should reject the commit if that account is not given permission.  I do not even have an ssh key added on the account used to push the commit.  This appears to be terminus session related.
Steps to reproduce:
1. Login via terminus auth login
2. Clone the git repo locally
3. Logout via terminus auth logout
4. Login via terminus auth login on an account not associated with the git repo.
5. Change the git credentials of that user (name, email address, etc.)
6.  Pantheon accepts this commit with an email address which is not associated with the repo.

My point: This should never be allowed.

@uberhacker terminus auth login and terminus auth logout has a completely separate authorization system than git clone or git push:

terminus commands use a session token
git commands use ssh keys

Logging in or out via Terminus should have no affect as to whether you can perform git operations and vice versa.
To isolate to just git:

Clone the git repo locally
Change the git credentials of that user (name, email address, etc.)
Change a file, git commit and then git push
Pantheon accepts this commit with an email address which is not associated with the repo.

This is intended and standard git behavior (you can try this on Github as well). Pantheon uses your SSH Key to authorize git push, but we do not validate commit authors---doing so would mean that upstream commits and patches from core Drupal/WP maintainers could not be applied via 1-click updates. Only authorized users (determined via SSH Keys) can git push commits into a repository, regardless of who authored the commits being pushed.
Can you please try removing all SSH Keys from your account and try a git push command. If it succeeds (it shouldn't), please open a ticket with support as they will be best situated to securely communicate about your and Pantheon's configuration.


Extend RedirectImplementation to callback on updates

The DNS proxy doesn't have a way to see updates, but needs a trigger to read the new rules in each redirect. The proxy package already updated the generic Redirect instance and now will call into the implementation to notify it of a change.
I'm not too sure that this is the best way to do this. It feels too specific for the DNS proxy. The other solution would be to have a xDS cache like envoy. I assumed that was a lot more involved so I went with this.

This change is

err, good point hound. I'll go fix that

test-me-please

Coverage decreased (-0.002%) to 43.357% when pulling dcf2b6fe3aa873e24463fd600c87d9e4f35c7b8f on raybejjani:fqdn-update-l7 into 01010a9013063f1efb68e94136260be31237dcf3 on cilium:master.

test-me-please


feat: add cuda memory fraction

Close #673

Closed in favor of #664

I’m not sure if this is working as expected I assigned 0.5 for memory fraction but it still try to allocate the same memory size.
@OlivierDehaene

docker run  -v /data:/data -p 3000:80 --gpus all --pull always --shm-size 10g ghcr.io/huggingface/text-generation-inference:sha-37df6df --model-id meta-llama/Llama-2-13b-hf --num-shard 4 --cuda-memory-fraction 0.5

correctly distribute on 4 GPUs using half of the GPU memory for each.

```shell
docker run  -v /data:/data -p 3000:80 --gpus all --pull always --shm-size 10g ghcr.io/huggingface/text-generation-inference:sha-37df6df --model-id meta-llama/Llama-2-13b-hf --num-shard 4 --cuda-memory-fraction 0.5

correctly distribute on 4 GPUs using half of the GPU memory for each.

I'm running this on sagemaker on ml.g5.48xlarge which is A10G and has 768 GiB memory
here is the log for when im running it on with 0.5 fraction:
#033[2m2023-07-25T06￼26.205291Z#033[0m #033[32m INFO#033[0m #033[2mtext_generation_launcher#033[0m#033[2m:#033[0m Args { model_id: "/opt/ml/model", revision: None, validation_workers: 2, sharded: None, num_shard: Some(4), quantize: None, dtype: None, trust_remote_code: false, max_concurrent_requests: 128, max_best_of: 2, max_stop_sequences: 4, max_input_length: 1024, max_total_tokens: 2048, waiting_served_ratio: 1.2, max_batch_prefill_tokens: 4096, max_batch_total_tokens: None, max_waiting_tokens: 20, hostname: "container-0.local", port: 8080, shard_uds_path: "/tmp/text-generation-server", master_addr: "localhost", master_port: 29500, huggingface_hub_cache: Some("/data"), weights_cache_override: None, disable_custom_kernels: false, cuda_memory_fraction: 0.5, json_output: false, otlp_endpoint: None, cors_allow_origin: [], watermark_gamma: None, watermark_delta: None, ngrok: false, ngrok_authtoken: None, ngrok_edge: None, env: false }
File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 136, in serve_inner    model = get_model(  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/init.py", line 185, in get_model    return FlashLlama(  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/flash_llama.py", line 65, in init    model = FlashLlamaForCausalLM(config, weights)  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_llama_modeling.py", line 456, in init    self.model = FlashLlamaModel(config, weights)  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_llama_modeling.py", line 394, in init    [  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_llama_modeling.py", line 395, in     FlashLlamaLayer(  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_llama_modeling.py", line 334, in init    self.mlp = LlamaMLP(prefix=f"{prefix}.mlp", config=config, weights=weights)  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_llama_modeling.py", line 304, in init    self.gate_up_proj = TensorParallelColumnLinear.load_multi(  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/layers.py", line 264, in load_multi    weight = weights.get_multi_weights_col(  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/weights.py", line 134, in get_multi_weights_col    w = [self.get_sharded(f"{p}.weight", dim=0) for p in prefixes]  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/weights.py", line 134, in     w = [self.get_sharded(f"{p}.weight", dim=0) for p in prefixes]  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/weights.py", line 107, in get_sharded    return self.get_partial_sharded(tensor_name, dim)  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/weights.py", line 95, in get_partial_sharded    tensor = http://tensor.to(device=self.device)
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 112.00 MiB (GPU 2; 22.20 GiB total capacity; 10.95 GiB already allocated; 10.13 GiB free; 11.10 GiB allowed; 11.08 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

Well yes this argument is not magic. Your instance is too smal to fit llama-2-70b-chat-hf: you need at least 2xA100 80GB.

Well yes this argument is not magic. Your instance is too smal to fit llama-2-70b-chat-hf: you need at least 2xA100 80GB.

thats the biggest g5 instance on aws (g5.48xlarge) 8 gpu and 192 gpu memory; memory  allocation remains the same with 1.0 and 0.5 both Tried to allocate 112.00 MiB same memory size
i also reduced max-batch-prefill-tokens and max-batch-total-tokens to half but same thing happened. could it be something else then ?

can you try num_shard=8?


ColorMapping Example not working anymore

https://rawgit.com/cornerstonejs/cornerstone/master/example/falseColorMapping/index.html
doesnt work anymore. Image is loading but after selecting a colormap the image goes blank.

@dannyrb  I have submitted a propose for this issue in #412, let me know if you think I do it differently ❤

Thanks, @mateusfreira! I've merged your fix.
I'll likely need to generate a new dist and cut a release for the demo to start working, but the source is aligned.
Thank you for taking the time to PR a fix! ^_^

Hi
in the file  internal/drawImageSync.js
if an image is already rendered
the  if statement
if (!render) {
if (enabledElement.viewport.colormap &&
enabledElement.viewport.colormap !== '' &&
enabledElement.image.labelmap === true) {
render = renderLabelMapImage;
}
will never be executed even if you set the colormap to true .
As a temporary workaround I added the following statement to get over the issue
if(enabledElement.viewport.colormap &&enabledElement.viewport.colormap !== '') render = false;
its a bad and crude fix but it works.

It seems same now. it displays black color when I change colormap.
browser: chrome os: window10


Feature Request:  FMQ (FDA Medical Query)

Feature Idea
Do we need new functionality/documentation in admiral for FMQ's ("FDA Medical Query")?
Relevant Input
We have functionality in admiral for SMQ's ("Standardized MedDRA Query") and CQ's ("Customized Queries").
As part of the SMQ/CQ-related development in admiral, a standard file format was defined for import of SMQ/CQ information. Individual Pharma companies would need to get their SMQ/CQ data into this expected format for use in admiral.
An article about FMQ's.
Relevant Output
No response
Reproducible Example/Pseudo Code
No response

Interesting!
Do you know if there is an official source of the definition of the FMQs? I have only found an excel document which was used for a workshop.
Unless CDISC adds new query variables I would use the CQ* variables for FMQs.

@esimms999-gsk , thanks for the feedback and the links.
I would suggest that we keep this issue in the backlog until FDA releases FMQs officially.


Q: Avoid full table scan when scaffolding

I was looking for an option that I can avoid full table scan when scaffolding, I'm working with a DB with more than 2k+ tables, and it takes a lot of time when running scaffolding.
I already search and didn't find any post about this option.
Best regards.
Thanks!

Duplicate of #9568
@piyey - Thanks for feedback. That is something we are planning to do in linked issue. Once intial scan done to get list of tables to be included, every other query would run for included table only.

Thanks @smitpatel ;)