Modified controls are not being saved

[ x ] I have checked the known issues and searched Github to ensure this issue has not already been reported.
[ x ] This is not a feature request, I know those belong on Discord/Github Discussions.

Description of the bug:
After modifying the configuration of the controls and restarting the game, the controls are not being saved.  May be related to #557 and the other bugs when dealing with multiple controls being detected under Linux.
Can you reproduce? If so please list the steps:

[ ] No, I cannot reproduce this bug
[ x ] Yes, here are the steps to reproduce the bug:

Customize controls under 2Ship2Harkinian Linux
Exit application
Re-open application, check for customized controls -- they have reverted to default.

Expected behavior:
Customized controls should be saved.  They are not being saved.
System Information:

OS: SteamOS 3.5.19
GFX Backend: OpenGL
Game Version: 1.0.0
Rom Version: 1.0 US (sha256 - EFB1365B3AE362604514C0F9A1A2D11F5DC8688BA5BE660A37DEBF5E3BE43F2B)

Additional Information:
This is most likely related to the #557 where control pads are being duplicated.

going off the assumption this is related to the duplicate controller issue, i'm going to close this out as that should be fixed in Rika Bravo (1.0.1), if this is still an issue on that version (after clearing out all the mappings from 2ship2harkinian.json) i can reopen this


Use Quarkus Maven plugin to build native executables

Summary
Fact that (so far) #949 fixed win race issue when building native executable on Windows tells me that by using QuarkusBootstrap class directly we just hope our setup is same as Quarkus Maven plugin is using. Users will have native executable built by Quarkus maven plugin, and so should we.
Please check the relevant options

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Dependency update
[x] Refactoring
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] This change requires a documentation update
[x] This change requires execution against OCP (use run tests phrase in comment)

Checklist:

[x] Example scenarios has been updated / added
[x] Methods and classes used in PR scenarios are meaningful
[x] Commits are well encapsulated and follow the best practices

run tests

run tests

run tests

I think remaining OCP native failures goes down to the fact that maven.repo.local needs to be propagated. It should be easy to do, I'll do it and test it.

Remaining system properties are propagated anyway, so maven specific args are special-case.

Ah, or I decided to not propagate non-Quarkus system props I think, yeah, still should be that, logs, images and ts props.

The safest way would be to propagate whole previous command, I'll check if I can somehow determine that.

I've checked - it is possible to do this safely via ProcessHandle API, I'll propagate exactly -D used in the original command.

Okay, I think I got it. We can probably make it more robust in the future, but I think it will work for current use cases. Let's see.

run tests

run tests

run tests

@rsvoboda all green now :-)


feat(color): add function to convert hex colors to rgba

This provides a function to convert hex colors to rgba colors

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Randomly trashing page layout when deleting page versions

Using Concrete 8.3.1 (also found in older versions):

Create a page with layouts and create several versions (just add/edit some blocks)
Remove all page versions except the live one

Once in a while I get deleted layouts in the live version with an exception, i.e. the core_area_layout block does still exist, but the corresponding row in "AreaLayouts" table is already deleted. This leads to an exception, as the AreaLayout-Object cannot be generated.
I can't reliably reproduce it currently.
Maybe it has to do with the controller class of core_area_layout, as this has a bug, but I do not know if it is used in this way:

The duplicate method of the class re-uses the area id from the previous version.
The delete method of the class deletes the area with id regardelss if there are other blocks that use the same id.

Using a backup I found the follwing data  in the database:
table btCoreAreaLayout
Some layout id are used twice, which must be wrong, as different blocks should not use the same layout id:
select *,count(arLayoutID) from btCoreAreaLayout group by arLayoutID having count(arLayoutID) > 1

bID
arLayoutID
count(arLayoutID)

137
30
2

147
38
2

151
41
2

I think I found the way to reproduce the error:

Add a layout that is a theme preset layout (that's important, other layouts do not produce this error)
Publish the page
Switch to edit mode again
Choose "edit container layout" on the added layout
Move it to another position and choose "update layout"
Now the block gets duplicated in database without duplicating the area

It seems that version 8.2.1 is not affected.

I think I found the problem: In case of theme preset layouts, the post parameters when editing layouts differ: The parameter "arLayoutEdit" is missing and therefore the wrong part in the save method of the core_area_aylout controller is executed:
public function save($post)
{
   if (isset($post['arLayoutID']) && !isset($post['arLayoutEdit'])) {

The solution ist to add the line
<input type="hidden" name="arLayoutEdit" value="1" />
to the file edit_preset.php in core_area_layout block.
This helps for future editings to fill the database correctly, but it does not correct databases already corrupted by this bug.
Everyone using preset layouts could loose some website contents when deleting old page versions.


Test showing failure of reflection on sub messages, and one possible fix

Hi!
I ran across an error while trying to extract v2 sub-messages via reflection.  I believe the attached test case is a minimal reproduction.  Without the fix I get:
---- v2::test_submessage_reflect::test_fail stdout ----
thread 'v2::test_submessage_reflect::test_fail' panicked at 'explicit panic', /home/mrjones/src/rust-protobuf/protobuf/src/reflect/accessor.rs:325
note: Run with RUST_BACKTRACE=1 for a backtrace.
This happens because the descriptor creates an accessor using make_singular_ptr_field_accessor which produces a FieldAccessorFunctions::Optional.  However, when using the accessor: FieldAccessorImpl::get_message_generic only has a match for FieldAccessorFunctions::SingularHasGetSet, so the Optional variant of the enum leads to a panic.
I included one possible fix, which makes get_message_generic behave more like other get_xxx_generic methods. However, I don't have very much context on this project and it's possible that there are problems with this fix.
Let me know how you'd like to proceed:

If you'd like to just merge this feel free to go ahead.
If you have suggestions on a better way to fix this, please let me know and I can work on it.
If you'd prefer, I can file the reproduction instructions as a bug and drop this PR.

Thanks very much for the library, it's been very handy!

Matt

Thank you for PR!
Seems like it was broken long time ago.
There are several things need to be done with this patch:

rename tests to follow common naming convention (test_submessage_reflect.rs and test_submessage_reflect_pb.proto)

add similar test for protobuf v3

and the tricky part is to make it work with unset optional fields. Currently it panics in your patch which is not perfect. It should return default instance. For that case make_singular_ptr_field_accessor should (I think) have additional parameter: pointer to a function which returns default instance.

But the last part can be done in separate patch.
So you are welcome to do any changes from that list, or I can do them myself later.

Committed your test without fix (yet) in e929979c5812ae507ca55033cedf7d139185684d.

Fixed (kind of). Protobuf-rust reflections needs refactoring.


Remove explicit true in --telemetry-disabled flag

Fixes CLI-41

Current dependencies on/for this PR:

main

PR #156   👈

This stack of pull requests is managed by Graphite.


Fix tt.dot to support integers

Core tests are passing with current triton code, but this change:
https://github.com/triton-lang/triton/pull/4573
should uncover more testcases, I checked that updates tests are also passing.

I have noticed the failure in lit tests, will follow-up with the fix

Lit test should be good now

I saw: "AttributeError: 'torch.dtype' object has no attribute 'startswith'", but it works for me, looks like I have a different version of pytorch, updated the code

failed again on bfloa16, should be fixed now


preprocessify fails as watchify transform module

I'm trying to run preprocessify like so:
gulp.task('browserify', function() {
    return gulp.src("").pipe(shell(['watchify -v -d -e ./dev/js/app.js -t preprocessify -t babelify --outfile ./dev/browserify/bundle.js']));
});

and it's failing like so:
/usr/local/lib/node_modules/watchify/index.js:77
        tr.on('file', function (file) {
           ^
TypeError: undefined is not a function
    at Browserify.<anonymous> (/usr/local/lib/node_modules/watchify/index.js:77:12)
    at Browserify.emit (events.js:110:17)
    at Deps.<anonymous> (/usr/local/lib/node_modules/watchify/node_modules/browserify/index.js:364:14)
    at Deps.emit (events.js:110:17)
    at nr (/usr/local/lib/node_modules/watchify/node_modules/browserify/node_modules/module-deps/index.js:282:18)
    at onfile (/usr/local/lib/node_modules/watchify/node_modules/browserify/node_modules/resolve/lib/async.js:51:21)
    at onex (/usr/local/lib/node_modules/watchify/node_modules/browserify/node_modules/resolve/lib/async.js:93:22)
    at /usr/local/lib/node_modules/watchify/node_modules/browserify/node_modules/resolve/lib/async.js:24:18
    at FSReqWrap.oncomplete (fs.js:99:15)
[18:22:39] 'browserify' errored after 654 ms

Am I doing something wrong? Any ideas? Thanks.

Preprocessify itself isn't a transform, it's a function that returns a transform.  I've never actually run it from the command line, I'm not sure how that would work.  Can you use the watchify API instead of shelling out?
This is how I'm using it...
var browserifier = browserify('./src/app/scripts/main.js')
    .transform(preprocessify({
        exampleVariable: 'Example Variable Value'
    ))
    .bundle({debug: true});

Oh okay, thanks. I think I just misunderstood that it could work that way. I've gotten what I wanted to work by using gulp-preprocess and putting the preprocessing into a separate gulp task.
We were using the shell command because we were having trouble getting the pure javascript version working with the rest of our gulp flow.
Thank you very much for your time and contribution to the community!

It's definitely not best practice to write transforms that way. See https://github.com/substack/node-browserify/issues/823. I'll try to work on a pull request later to fix this. Thanks for a great package, other than this! :-)


Bug: Columns Layout if first node deletion is incorrect

Lexical 0.21
If the columns layout widget is the first node, Select all (or mouse selection of the whole widget)-> Delete, leads to invalid state of the widget. If there's a paragraph before the widget it select all deletes correctly.
https://github.com/user-attachments/assets/b9ab63a9-7b7f-48ae-a048-f03147afb38c

This is mostly due to the point normalization in our $selectAll() function, it basically always shrinks selections down to the innermost element or TextNode if there is one. Maybe we could change that to only shrink if there is a TextNode, or only if the container is ParagraphNode, or something like that. The alternative would be to do something around how delete works, but then you run into the ambiguity of "did they mean to select all the text, or also the container?" - the normalization makes these two intents indistinguishable.

I just ran into this today. Any workarounds?

You could override SELECT_ALL_COMMAND and create a selection that includes the whole node without using $selectAll or selection normalization.


RBAC enabled results in error: unable to upgrade connection: Forbidden (user=client, verb=create, resource=nodes, subresource=proxy) on kubectl exec

Deploying CDK 1.10 with RBAC (i am also testing 1.11 and 1.12 and will report back later/tomorrow)  results in:
error: unable to upgrade connection: Forbidden (user=client, verb=create, resource=nodes, subresource=proxy)
when running kubectl exec
$ kubectl exec -it busybox-5858cc4697-pgqw5 -- /bin/sh

error: unable to upgrade connection: Forbidden (user=client, verb=create, resource=nodes, subresource=proxy)
The same bundle deployed with RBAC disabled in yaml works fine and doesn't show this behaviour
juju-status-output.txt
kubectl-get-all-all-namespaces.txt
cdk-bundle.yaml.txt
results-2018-11-23-20-54-13.tar.gz

This is closely related to https://github.com/juju-solutions/bundle-canonical-kubernetes/issues/642, which was fixed by https://github.com/juju-solutions/kubernetes/pull/188. That fix has not made it to stable yet.
However, the error reported in this bug shows verb=create, a permission which was not included in that fix. So we probably need to expand those permissions before we can close this.

Thank you @Cynerva
@kowalczykb the workaround here https://github.com/juju-solutions/bundle-canonical-kubernetes/issues/642#issuecomment-418327745 seems to be working for your case


TypeError in index.android.bundle:719

Error in mSupply Mobile
TypeError in index.android.bundle:719
undefined is not an object (evaluating 'this.props.navigateTo')
View on Bugsnag
Stacktrace
index.android.bundle:719 - value

View full stacktrace
Created automatically via Bugsnag

Duplicate of #566

An error linked to this issue has been reopened in Bugsnag
TypeError in index.android.bundle:719

An error linked to this issue has been marked as fixed in Bugsnag
TypeError in index.android.bundle:719


Handling of static assets with paths.base

Just a failing test for now. If you have a file like static/answer.txt, and a paths.base of /basepath (with no paths.assets), the file should be served at /basepath/answer.txt, but instead it's served at /answer.txt because Vite doesn't know about the basepath.
But if Vite does know about the basepath, then it messes up Kit's own logic for dealing with basepaths... gah. Basepaths are a nightmare
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[ ] This message body should clearly illustrate what problems it solves.
[ ] Ideally, include a test that fails without this PR but passes with it.

Tests

[ ] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[ ] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpx changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

(Copied over from #3345)
Getting static assets to work with svelte-kit dev is indeed tricky. What I've tried:

In my original changes, I simply set $app/paths.assets to be empty in the build; Vite was already serving the assets from the root path, so as long as every asset use is prefixed by $app/paths.assets, everything works. Of course, this breaks if asset paths are hardcoded, relative, etc. These cases were already broken.
Change Vite's base path - right now it's hardcoded to /. Changing it to config.kit.paths.base + '/' seems to work (in my limited testing) if I hack the base path back in before sending it to the router for SSR - assets are correctly served from paths.base. But it fails if the user has a custom paths.assets, because the app is built with the asset path as /_svelte_kit_assets, but the assets are served from paths.base/svelte_kit_assets. We could change the asset path in the app build, but then it breaks parity with svelte-kit preview. We could also use a combination of that scheme and the existing one, depending on whether paths.assets is set, but that sounds like a mess.
Serve the static assets "by hand", rather than having Vite do it for us. svelte-kit preview already does this. Honestly, I don't know enough about Vite to know what the tradeoffs are here.


Untested code / adding a password option

Sadly, browsepy's feature scope is closed, but any extra functionality could be added as plugin (as long as it complies a few rules http://ergoithz.github.io/browsepy/builtin_plugins.html#contributing-builtin-plugins).
A proper authentication plugin is on our roadmap, so I will take my time to see if this code could be adapted to a plugin to be mainstreamed.
Thanks for your contribution.

no need , you can run this behind nginx reverse proxy to add all sorts of authentication protection.


Transparent Layers

Transparency of Symbols in High Resolution Export of Excel graphs is exported without transparency. If you need further information contact me<EMAIL_ADDRESS>

Hi @madak47, what file type are you exporting to and are you sure you have enabled transparency in the export settings?
Please, send me an example file to daniel (at) xltoolbox (dot) net. No sensitive data please.


Implement WsiAnnotations in C++

This is a discussion thread on how to implement the WsiAnnotations properly.
The current version implements the reading and writing of GeoJSON and the reading of a specific region. Check out the file gen_polygons.py how it can be used, including how to convert the current annotations to masks
Perhaps some interesting features which is not there yet in the current WsiAnnotations

WsiAnnotations.scale() scales the annotations in place, this is for instance useful if you have annotations at different mpp you wish to scale to your current images
WsiAnnotations.set_offset() sets an offset in place, this is for instance useful if you have annotations for instance by Halo that require to be offsetted in the visible image region
inspect the reindex_polygons function. Is this a signature you would expect? Is this function required (e.g. when you want to set the index map later on rather than during the instructor)
-The.read_region() returns a container type which has .polygons .points and .masks, that way it's much easier to get the respective data which you don't have to pick apart in convert_annotations. Is this a good approach?
You can call to_mask(region_size, index_map) on the result of read_region and get the mask.
You can call sort_polygons with a key lambda function to sort in place (just like with list.sort())
.bounding_box computes the box surrounding both polygons and points

Something that might be nice to have

Box support?

Mask support?

JSON loading in C++? For a typically annotation it is now ±100ms for the current version, 50ms for the C++ version, and likely that can go down to about 10ms if using C++ JSON parsing.

Lazy evaluation? At what level? If we have a container .polygons on the GeometryCollection we could for instance postpone the 'read_region' functionality until we actually want to have the polygons. That would allow for very fast iteration over the dataset too if it doesn't need to execute any expensive operations. Could be useful for instance to collect indices.

Please add more possible features.

To install I had to pip install meson pip install ninja pip install dlup and meson build to get it working. Maybe others can test this in their setup and we can change the readme.md to reflect all of this. I also had to remove the pure=false from the meson.build file (at line 7) because of meson version issues.


[ez] add a clarification for first time users

Context

Users are required to download from meta website for the first time. Afterward, HF is available. (as explained in https://github.com/meta-llama/llama?tab=readme-ov-file#access-to-hugging-face)
The example below is for HF. So clarify it a little bit for first time users.

Changelog

updated readme.md with a clarification

Test plan

check preview.

For NUX, it seems users can directly request access from HF meta-llama page without going to meta website

For NUX, it seems users can directly request access from HF meta-llama page without going to meta website

oh? I read it from meta website. Let me create a new HF account and try.

@SLR722 , tried with my new account. It failed at access check.
(torchtune) [huanwng@devgpu004]~/github/torchtune% tune download \
--repo-id meta-llama/Llama-2-7b \
--output-dir /tmp/llama2
Traceback (most recent call last):
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/site-packages/huggingface_hub/utils/_errors.py", line 304, in hf_raise_for_status
    response.raise_for_status()
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://huggingface.co/api/models/meta-llama/Llama-2-7b/revision/main

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

Traceback (most recent call last):
  File "/home/huanwng/.conda/envs/torchtune/bin/tune", line 8, in <module>
    sys.exit(main())
  File "/home/huanwng/github/torchtune/torchtune/_cli/tune.py", line 133, in main
    runpy.run_path(str(cmd), run_name="__main__")
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/runpy.py", line 289, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/huanwng/github/torchtune/torchtune/_cli/download.py", line 73, in <module>
    download(args.repo_id, args.output_dir, args.hf_token)
  File "/home/huanwng/github/torchtune/torchtune/_cli/download.py", line 34, in download
    snapshot_download(
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/site-packages/huggingface_hub/utils/_validators.py", line 119, in _inner_fn
    return fn(*args, **kwargs)
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/site-packages/huggingface_hub/_snapshot_download.py", line 255, in snapshot_download
    raise api_call_error
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/site-packages/huggingface_hub/_snapshot_download.py", line 186, in snapshot_download
    repo_info = api.repo_info(repo_id=repo_id, repo_type=repo_type, revision=revision, token=token)
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/site-packages/huggingface_hub/utils/_validators.py", line 119, in _inner_fn
    return fn(*args, **kwargs)
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/site-packages/huggingface_hub/hf_api.py", line 2423, in repo_info
    return method(
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/site-packages/huggingface_hub/utils/_validators.py", line 119, in _inner_fn
    return fn(*args, **kwargs)
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/site-packages/huggingface_hub/hf_api.py", line 2233, in model_info
    hf_raise_for_status(r)
  File "/home/huanwng/.conda/envs/torchtune/lib/python3.10/site-packages/huggingface_hub/utils/_errors.py", line 321, in hf_raise_for_status
    raise GatedRepoError(message, response) from e
huggingface_hub.utils._errors.GatedRepoError: 403 Client Error. (Request ID: Root=1-6605d589-301c25f530e4b72d4a22bdab;56203e31-de06-458d-9857-60eab9c0a8f4)

Cannot access gated repo for url https://huggingface.co/api/models/meta-llama/Llama-2-7b/revision/main.
Access to model meta-llama/Llama-2-7b is restricted and you are not in the authorized list. Visit https://huggingface.co/meta-llama/Llama-2-7b to ask for access.

@skcoirz this is not related to weights access, but with accessing external links from an internal server. try accessing this from your local machine. message me if you'd like to set it up for your internal server

tune download works now after HF admin approved my request. Learning

the error is caused by HF Llama2 access control.
There might be an auto acl sync between llama2 main site and HF (mentioned on the site)


Editing page to be current with R4 settings

Currently, R4 (General Ring) customers do not have TeamsOnly parameters, nor do they have many of the parameters listed in this page. Currently updating the page to be in-tune with what's actually available to Public Facing Tenants.

We should recommend Admins use Grant-CsTeamsUpgradePolicy if they want to enable/flight TeamsOnly users for now until this rolls out to GA.

@SamCosby - I wonder if rather than remove entirely we should add a note that says this is not rolled out to everyone? What about the people that are able to see these params? @LolaJacobsen FYI

@islubin - can you provide guidance here? what should be visible on this page?

@bjwhalen should be the POC for updates on this page!  @bjwhalen can you comment on Sam/Ken's suggestions?

@SamCosby - maybe a note that these are not available to everyone and roll out in rings? I don't think we can remove them but haven't been able to touch base with @bjwhalen or @islubin on this one.


format time when sqlTypeName is core.Varchar

I believe that many developers define the created_at or updated_at columns as a string like this:
type User {
    Id int64
    // ... other cols
    CreatedAt string `xorm:"'created_at', created"`
}

While using postgres database, a date time string with decimal, like 2018-06-28 15:33:58.942773, will be inserted. But in fact, we don't want a time(string) with decimal.
So I add some codes to format the time value into 2006-01-02 15:04:05:
// ... context
case core.DateTime, core.TimeStamp, core.Varchar: // !DarthPestilane! format time when sqlTypeName is core.Varchar.
    v = t.Format("2006-01-02 15:04:05")
// ... context

Hope can be merged.

@DarthPestilane could you add some tests?


Use ESBuild for privacy-grade tests

Remove the legacy grunt + browserify bundling used for running the privacy-grade tests.

Ok


Skip fetching unknown actors when on some events

It may make sense for gup.pe to skip fetching unknown actors on certain events, such as:

a Delete where the actor and the object are one and the same: this is how Mastodon signals account deletions, so fetching the actor would not work (since it is deleted already), and since you don't know the actor, you have nothing to delete
an Update where the actor and the object are one and the same: if you don't know the actor already, you probably don't need to process their profile updates

A contribution for this change would be welcome. Or, we're available for hire if you prefer<EMAIL_ADDRESS>

The relevant code is here: https://github.com/immers-space/activitypub-express/blob/364d90705731dca755f3cb21747274eba0aad1e4/net/security.js#L44-L73

Thank you for solving this issue!


[DOC] Missing info about PNG compression

I noticed that the file size of my images is much smaller than the original if I save them in the PNG file format.
After some time I discovered, that PNG plugin uses attribute png:compressionLevel with 6 as default value. And there is no mention of this attribute in the documentation.

Do you just want this documented? Or are you asking for a different behavior?

Currently, we just always use PNG_COMPRESSION_TYPE_DEFAULT when writing PNG files.
I suspect that because we just use the default, that's why we didn't say anything special about it in the docs.

I think it's worth to be documented. I'm not familiar with libpng, so for me, it was not obvious how to achieve lossless quality.

It's always lossless.


Migrate CivDocker

With the move to the mono repo, and #356, it seems like the logical next to move all of civ's codebase under one roof. On top of that, it would make releases significantly easier and simpler as plugins could be versioned under the civ version, instead of being independently versioned. (Tracking changes is a nightmare at present, at least for me.)

We are doing this, just waiting until after the 1.26.4 patch.

Glad to hear it


[Event Request] codeunit 5940 ServContractManagement - OnCreateAllServLinesOnAfterCreateDetailedServLine

Can you add event OnCreateAllServLinesOnAfterCreateDetailedServLine in procedure CreateAllServLines?
                        if "Contract Lines on Invoice" and (ServContractLine."Starting Date" <= InvoiceTo) then
                            if Prepaid and (ServContractLine."Starting Date" <= "Next Invoice Date") or
                               ((not Prepaid) and
                                ((ServContractLine."Invoiced to Date" = "Last Invoice Date") or
                                 (ServContractLine."Invoiced to Date" = 0D)))
                            then
                                if (ServContractLine."Contract Expiration Date" = 0D) or
                                   (ServContractLine."Contract Expiration Date" >= InvoiceFrom)
                                then
                                    CreateDetailedServLine(ServHeader, ServContractLine, "Contract Type", "Contract No.");

                        // >>>>>>>>>>>>>>>>
                        OnCreateAllServLinesOnAfterCreateDetailedServLine(ServContractToInvoice, ServHeader, ServContractLine);
                        // <<<<<<<<<<<<<<<<

                        if Prepaid then
                            if (ServContractLine."Starting Date" < "Next Invoice Date") and (ServContractLine."Invoiced to Date" = 0D) then begin
                                PartInvoiceFrom := ServContractLine."Starting Date";

    [IntegrationEvent(false, false)]
    local procedure OnCreateAllServLinesOnAfterCreateDetailedServLine(ServiceContractHeader: Record "Service Contract Header"; ServHeader: Record "Service Header"; ServContractLine: Record "Service Contract Line")
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


radicle: namespace peers

The previous iteration of the storage layout for projects organised peer's subtrees by the refs/remotes category. This layout leads to problems when linking a working copy to the storage project. The fetch refspec would look something like:
fetch = +refs/remotes/abc/heads/*:refs/remotes/rad/*
This works perfectly fine when running:
git fetch rad
but will fail when one tries to specify:
git fetch rad main
Instead, the command would need to be:
git fetch remotes/abc/heads/main
This patch proposes to move the use of refs/namespaces for each peer. The layout looks similar in that each peer has a subtree, but instead it is under refs/namespaces/<peer>/refs/....
The previous refspec would look more familiar in its new form:
fetch = +refs/heads/*:refs/remotes/rad/*
With this in place running:
git --namespace=abc rad main
Will work as expected and place the reference under refs/remotes/rad/main. Similary, git --namespace=abc push will work as expected.
Another benefit of this approach is that the use of namespacing means that a tag is pushed it will be placed under the respective namespace rather than in the global refs/tags category.
The actual implementation needed to work around the fact that git2/libgit2 does not have any options for fetching or pushing using namespaces. The working copy code uses processes to shell out to git for namespacing needs.

This is great, thanks. Mainly minor points. I am realizing though that you may have some conflicts with master due to the unwrap-ifying, but I can help with that.

This is great, thanks. Mainly minor points. I am realizing though that you may have some conflicts with master due to the unwrap-ifying, but I can help with that.

No worries, I fixed everything up and I'll make issues for the namespace stuff in radicle-git!


pcap doesn't works on linux/mips

I do cross platform compiling on Darwin/amd64 and the target platform is linux/mips.
The IDE shows the message "pcap.go doesn't match to target system.File will be ignored by build tool".
If I ignore the message and try to build it, the compiler will shows the message "undefined: pcap.OpenLive".
I have no idea why the file pcap.go was ignored by go build.
Somebody help me, thanks.

I was able to build it for mips64 with this xgo fork:
https://github.com/ykyuen/xgo
This is what you need:

docker
go get github.com/ykyuen/xgo
create the folder xgo-dist and move the xgo binary there
run:
./xgo -ldflags='-linkmode external -extldflags "-static -s -w"' --deps=http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz --depsargs=--with-pcap=linux --targets=linux/mips64 github.com/google/gopacket

@negbie Appreciate for quick reply,I'll try that later.


Finding the number occuring odd number of times in an array

Problem Link
Mention the problem on which you want to work on
https://www.geeksforgeeks.org/find-the-number-occurring-odd-number-of-times/
Coding platform
Mention the coding platform from where you have picked the problem
GFG
Programming language

[ ] C
[ ] C++
[ ] Java
[ ] Python

Additional context (OPTIONAL)
Add any other context or screenshots about the feature request here.

@Nivedita967 would like to work on it using java

Kindly, Please assign it to me . I would like to work in python!!

I would like to work on this in C++

@JASKAMAL22 @kanak22 Go for it :)


python3Packages.monitorcontrol: init at 3.1.0

Description of changes

Repository: https://github.com/newAM/monitorcontrol
Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Thanks for the review @natsukium!  I applied you changes.

@ofborg build python310Packages.monitorcontrol python311Packages.monitorcontrol


I request you to add 1 anime extension

Describe your suggested feature
You can add "allanime.site/anime" since it is daily update. If rejected, its fine.
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with an extension, I should be opening an issue in the extensions repository.
[X] I have updated the app to version <IP_ADDRESS>.
[X] I will fill out all of the requested information in this form.

Open a issue here: https://github.com/jmir1/aniyomi-extension

To add/fix extensions, make a github issue here if it does not exist already
https://github.com/aniyomiorg/aniyomi-extensions


Update 0.2.7

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_e853jle6kq/clone` failed. (See above for error)
The following problems have been found:
===== ERRORS =====

clone/recipe/meta.yaml:44: invalid_url: https://www.kaggle.com/docs : Not reachable: 404
clone/recipe/meta.yaml:44: missing_license_family: The recipe is missing the about/license_family key.
===== Final Report: =====
2 Errors and 0 Warnings were found


[Issue-1088] Drive status is not set to OFFLINE when health is changed to BAD

Purpose
Resolves #1088
Drive status is not set to OFFLINE when health is changed to BAD
PR checklist

[X] Add link to the issue
[X] Choose Project
[X] Choose PR label
[ ] New unit tests added
[X] Modified code has meaningful comments
[X] All TODOs are linked with the issues
[X] All comments are resolved

Testing
Provide test details

@Kacper-Michon-DELL it shouldn't change to OFFLINE. Drive can have BAD health, but be ONLINE. ONLINE means it's detected by CSI


Add version string to st2tests to make it installable

Prior to this change, this will fail:
cd st2tests/st2tests
pip install .

After this change that command successfully installs the st2tests package. This will also work for installing via GitHub as in:
pip install -e<EMAIL_ADDRESS>
The original request in #2574 is to get st2tests onto PyPI, and I'm not sure if this will accomplish that request, but this is a good first step.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I see I need to sign the CLA, please wait while I seek approval to do so.

I'm blocked on running tests because of #3934, though I might see if I can get enough installed to just run the st2tests integration tests.

You can also use Vagrant (https://github.com/stackstorm/st2vagrant) or Docker for StackStorm Development as StackStorm comes with lots of requirements and infra, including DB/MQ/etc.
@StephenWeber BTW, do you think it would be easier for you to sign DCO or CLA, considering your work environment?
We might switch to DCO soon.

Thanks for the tip on testing!

do you think it would be easier for you to sign DCO or CLA, considering your work environment?
We may switch to DCO soon.

We have an internal process for CLA, I do not believe we have a process for DCO but I can ask.
That said, my request is in with Legal and I expect an answer soon.

I heard back from legal, and they did say that a DCO would be easier - they prefer to sign company-level CLAs. I haven't gotten confirmation back that I can sign the individual CLA but I expect that to be approved this week.
In the meantime, I suppose I could also branch off of v3.2 and provide a similar PR for that in case a patch ever is released for that? My deployment is using v3.2 for the time being.

Integration test error:
Python wrapper process script took more than 0.31 seconds to execute (0.3175). This most likely means
that a direct or in-direct import of a module which takes a long time to load has been added (e.g.
jsonschema, pecan, kombu, etc).`

I know I'm adding a new project import, and it's not over by much (0.0175 seconds) - unfortunately passing tests do not print out the actual value so I don't know how much import time I'm adding to the system with this change..

Integration tests failed to complete in time, closing and reopening ticket to trigger a new build.

Now the integration tests are back to failing for test_process_wrapper_exits_in_reasonable_timeframe, I'll see about running these locally... but I probably need help...


Install fails please watch my install log

pi@Home-Assistant:~ $ curl -L https://install.pivpn.io | bash
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100   178  100   178    0     0    223      0 --:--:-- --:--:-- --:--:--   224
100 37392  100 37392    0     0  38439      0 --:--:-- --:--:-- --:--:--  320k
:::
::: sudo will be used for the install.
::: Using interface: eth0
::: Using User: pi
:::
::: Checking apt-get for upgraded packages.... done!
:::
::: There are 26 updates availible for your pi!
::: We recommend you run 'sudo apt-get upgrade' after installing PiVPN!
:::
:::
::: Checking dependencies:
:::    Checking for openvpn... Not found! Installing.... [|]  E: There are problems and -y was used without --force-yes                                 done!
:::    Checking for easy-rsa... Not found! Installing.... []  E: There are problems and -y was used without --force-yes                                done!
:::    Checking for git... already installed!
:::    Checking for iptables-persistent... Not found! Installing.... [|]  E: There are problems and -y was used without --force-yes                     done!
:::    Checking for dnsutils... already installed!
:::    Checking for expect... Not found! Installing....E: There are problems and -y was used without --force-yes
done!
:::    Checking for unattended-upgrades... Not found! Installing....E: There are problems and -y was used without --force-yes
done!
:::
::: Stopping openvpn service...Failed to stop openvpn.service: Unit openvpn.service not loaded.
done.
sed: can't read /etc/apt/apt.conf.d/50unattended-upgrades: No such file or directory
:::
::: Checking for existing base files...
:::    Checking /etc/.pivpn is a repo... not found!!
:::    Cloning https://github.com/pivpn/pivpn.git into /etc/.pivpn... done!
:::
::: Installing scripts to /opt/pivpn... done.
cp: cannot stat ‘/usr/share/easy-rsa’: No such file or directory
bash: line 617: cd: /etc/openvpn/easy-rsa: No such file or directory
sed: can't read vars: No such file or directory
sed: can't read vars: No such file or directory
sed: can't read vars: No such file or directory
sed: can't read vars: No such file or directory
sed: can't read vars: No such file or directory
sed: can't read vars: No such file or directory
sed: can't read vars: No such file or directory
sed: can't read vars: No such file or directory
sed: can't read vars: No such file or directory
sed: can't read vars: No such file or directory
bash: line 703: ./vars: No such file or directory
sudo: ./clean-all: command not found
::: Building CA...
sudo: ./build-ca: command not found
::: CA Complete.
sudo: ./build-key-server: command not found
sudo: ./build-dh: command not found
sudo: openvpn: command not found
cp: cannot create regular file ‘/etc/openvpn/server.conf’: No such file or directory
sed: can't read /etc/openvpn/server.conf: No such file or directory
sed: can't read /etc/openvpn/server.conf: No such file or directory
sed: can't read /etc/openvpn/server.conf: No such file or directory
sed: can't read /etc/openvpn/server.conf: No such file or directory
net.ipv4.ip_forward = 1
sudo: netfilter-persistent: command not found
cp: cannot create regular file ‘/etc/openvpn/easy-rsa/keys/Default.txt’: No such file or directory
sed: can't read /etc/openvpn/easy-rsa/keys/Default.txt: No such file or directory
sed: can't read /etc/openvpn/easy-rsa/keys/Default.txt: No such file or directory
::: Using OpenDNS servers.
sed: can't read /etc/openvpn/server.conf: No such file or directory
sed: can't read /etc/openvpn/server.conf: No such file or directory
Failed to execute operation: No such file or directory
Failed to start openvpn.service: Unit openvpn.service failed to load: No such file or directory.
::: Install Complete...

It seems apt wasn't able to install the openvpn package and a bunch of other packages. It might be because you haven't updated in a while (see here). Can you reproduce this issue on a fresh install? (If you don't want/can't do a fresh install, can you manually install the required packages with sudo apt-get install openvpn easy-rsa git iptables-persistent dnsutils expect unattended-upgrades and try again?)

This could be messed up sdcard as well.  Either way not an inherent failure of pivpn.  Will close.


OnRequestCompleted doesn't work if ThrowExceptions is enabled

Title says it all. What I expected is that OnRequestCompleted would handle all completed requests, successful and failed. But if ThrowExceptions is enabled, the exception throwing takes place before calling OnRequestCompleted, which defeats the purpose of having a tracing handler.
I checked on your code.
Transport.Request calls
if (response == null || !response.Success)
  pipeline.BadResponse(ref response, requestData, seenExceptions);

this.Settings.OnRequestCompleted?.Invoke(response);

Would it be a really big problem if you changed the order to call OnRequestCompleted before and not after?
Thanks a huge lot

Thanks a lot


Fix Oracle test missing order by expression in select distinct

My question about this was: what is the contract here? Are we supposed to automagically add expressions appearing in order by to the select list? i.e. is this a bug in the test, or in the criteria API? I don't know the answer to that.

Are we supposed to automagically add expressions appearing in order by to the select list?

Yes, I think the translator should do that if required by the database for certain queries.

Yes, I think the translator should do that if required by the database for certain queries.

OK so then we should open an issue, because this is actually a bug.

Yes, I think the translator should do that if required by the database for certain queries.

I've ran some testing and it looks like, for select distinct queries, most (if not all) databases we support require the order by expressions to be included in the select clause.
We could choose to always manipulate the selection items for distinct queries with a sort specification, but I also think leaving the responsibility of selecting the expressions used in the order by to the user is fine (and maybe more transparent).

Yes, I think the translator should do that if required by the database for certain queries.

I've ran some testing and it looks like, for select distinct queries, most (if not all) databases we support require the order by expressions to be included in the select clause.
We could choose to always manipulate the selection items for distinct queries with a sort specification, but I also think leaving the responsibility of selecting the expressions used in the order by to the user is fine (and maybe more transparent).

If most other databases have the same behavior, I agree that we shouldn't try to alter the SQL.

This test exists since two years ago, I'm curious why it fails recently.

This test exists since two years ago, I'm curious why it fails recently.

We already looked into this: it fails due to a change in Oracle itself.

Answer from Oracle:

Some news from the dev team: previous versions allowed such a construct which is wrong. From now on 23ai has the right behavior (raises the error correctly).

The fix will be backported to previous versions (19c, 21c).


HNC: test function TearDownHNC can fail silently

/cc @GinnyJI
/cc @yiqigao217
Ginny and I were looking at a test where it seems like the command to delete the subns CRD failed (as evidenced by the fact that there were still subnses afterwards) but because we use TryRunQuietly there was no evidence of this.
We should have some better function that can delete objects if they exist, but if they can't delete an object, return an error.

Hi @adrianludwin , I'd like to give this issue a try. :)
I just looked into the code, and I see that we have an alternate function TryRun that logs the errors when the command returns an error. Is there any reason why we may not be able to use this?
Thanks

Hey Mayank, sorry I've been on vacation this last week. I'll reply when I'm
back after Labour Day (i.e. early next week). Thanks!
On Sun, Sep 6, 2020 at 8:46 AM Mayank Shah<EMAIL_ADDRESS>wrote:

Hi @adrianludwin https://github.com/adrianludwin , I'd like to give
this issue a try. :)
I just looked into the code, and I see that we have an alternate function
TryRun that logs the errors when the command returns an error. Is there
any reason why we may not be able to use this?
Thanks
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-sigs/multi-tenancy/issues/1041#issuecomment-687780785,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE43PZGU6X3XTHRPIYY6KFTSEOAEBANCNFSM4QHLYPHA
.

No problem. Have a great vacation! 🙂

Hey let me know if you need any advice on this but any PRs would be welcome!

Hi, @adrianludwin . Thanks!
I was just trying to wrap my head around this issue, and tried to look into the code. The issue mainly talks about how the tests did not leave any evidence when the CRD deletion failed (due to TryRunQuietly).
I see that we have an alternate function called TryRun that will log these failures. Would it help if we used TryRun instead?

I believe the problem is that we expect some of the commands in the cleanup to fail - e.g., if we try to delete a namespace that we never created. In those cases, I think we do want TryRunQuietly to avoid printing too much logspam. However, if the namespace does exist, it should be deleted successfully.
I think you're also looking at another bug that has a better way to clean up the namespaces without relying on exact names. If so, running that command with TryRun, and not TryRunQuietly, seems like the right thing to do.

/remove-lifecycle stale

Moved to https://github.com/kubernetes-sigs/hierarchical-namespaces/issues/26
/close


Stream_9

Issue #100
Updated plot:

@michaelavs @hCraker Do either of you know a way to plot multiple arrows on each streamline instead of just one?

@michaelavs @hCraker Do either of you know a way to plot multiple arrows on each streamline instead of just one?

Not at the moment. I'm trying to figure that out for PR #99. I'll let you know if/when I learn how to do it.

@hCraker @clairefio These two resources may point you both in the right direction: https://problemsolvingwithpython.com/06-Plotting-with-Matplotlib/06.15-Quiver-and-Stream-Plots/
and the second response to this question is very long code wise but the output does have multiple arrows per line:
https://stackoverflow.com/questions/43150872/number-of-arrowheads-on-matplotlib-streamplot

@hCraker @clairefio These two resources may point you both in the right direction: https://problemsolvingwithpython.com/06-Plotting-with-Matplotlib/06.15-Quiver-and-Stream-Plots/
and the second response to this question is very long code wise but the output does have multiple arrows per line:
https://stackoverflow.com/questions/43150872/number-of-arrowheads-on-matplotlib-streamplot

From that stackoverflow post, it looks like there are a few different functions that people wrote as a solution and there is not shorter, more elegant solution. Perhaps if we write a function for this, we should add it as a utility function geocat-util.

The MPL flow visualization functions are, IMHO, a weak spot compared to NCL. There are definitely opportunities for improvement, some of which can be handled through convenience functions, and others that may require upstream development.

@hCraker I figured out how to plot multiple arrows by dividing the streamlines into segments and then plotting the arrows individually (I think it was like the third solution on this link: https://stackoverflow.com/questions/43150872/number-of-arrowheads-on-matplotlib-streamplot), but I am still having trouble scaling them and applying the color map to them. Do you have any ideas on how to accomplish this?

@hCraker I figured out how to plot multiple arrows by dividing the streamlines into segments and then plotting the arrows individually (I think it was like the third solution on this link: https://stackoverflow.com/questions/43150872/number-of-arrowheads-on-matplotlib-streamplot), but I am still having trouble scaling them and applying the color map to them. Do you have any ideas on how to accomplish this?

To color the arrows, use the 5th positional argument for plt.quiver(). The argument takes an array with the numeric values that the colors should be based on (i.e. temperature, wind speed). You can also specify the color scheme by using the kwarg cmap.
About the scaling, note that scale_units affects the units for length while units specifies the units for every other dimension of the arrows. You may have to play with headwidth, headlength, and the other kwargs. I hope this helps!

Updated plot w/o colorbar:

Updated plot:

@NCAR/geocat I was able to change the matplotlib streamplot.py code to allow multiple colored arrows to be plotted on each streamline. I added the edited streamplot.py file to this directory, but I'm not sure where I should go from here.

Updated plot:

Is there a question?

Is there a question?

Yeah, should I just use the original matplotlib streamplot.py file, push the code that doesn't have the arrows on the streamlines, and then make a PR in the matplotlib repository?

Gotcha. So that we don't hold up your PR, let's add the streaplot.py file to the GeoCAT-viz repo.
Once it has been reviewed internally, lets's see if we can submit your changes to streamplot.py to Matplotlib.

Updated plot (without one arrow per streamline):


raftstore: reduce merge check tick interval

Signed-off-by: gengliqi<EMAIL_ADDRESS>What problem does this PR solve?
Change default merge-check-tick-interval from 10 to 2.
Problem Summary:
The admin cmd may be dropped when the leader has not applied to current term which is introduced by https://github.com/tikv/tikv/pull/8441.
If the CommitMerge is dropped, the merge process will get stuck and the data in source region can not be read or written until the later retry. The default of merge-check-tick-interval is 10(s) which is obviously too long so this PR change it to 2(s).
What is changed and how it works?
What's Changed:
Related changes

PR to update pingcap/docs/pingcap/docs-cn:
Need to cherry-pick to the release branch

Tests

No code

Side effects

Performance regression

Consumes more CPU

Release note

Change the default merge-check-tick-interval to 2 to speed up the retry of merge process

/merge


Update @snowpack/plugin-postcss API

Changes
Update @snowpack/plugin-postcss following #2165, updates to the new API.

Testing
Tests should pass; also tested on a local repo.

Docs
No docs updates necessary.

I’m going to merge so it’s not stuck all afternoon; the only test that was touched passes locally. Other checks such as lint pass locally too.


Breakpoint on initial build() function causes black screen on simulator

Steps to Reproduce
flutter create myapp

Open myapp in IntelliJ
Set breakpoint on initial build function
Debug on iOS simulator
Screen is black even after continuing past breakpoint.
Logs
Mar 16 11:38:46 jackson-macpro logd[76576]: Failed to harvest strings for pathless uuid '00000000-0000-0000-0000-000000000000'
Mar 16 11:38:46 jackson-macpro Runner[1967]: assertion failed: 16D32 14C89: libxpc.dylib + 62677 [0339A402-6531-30E9-8BC2-589C463CD6D6]: 0x7d
Mar 16 11:38:46 jackson-macpro Runner[1967]: [WARNING:platform_view.cc(162)] WARNING: Could not setup an OpenGL context on the resource loader.

Flutter Doctor
[✓] Flutter (on Mac OS X 10.12.3 16D32, channel unknown)
    • Flutter at /Users/jackson/git/flutter
    • Framework revision 146fc617ca (2 days ago), 2017-03-14 14:07:35
    • Engine revision b97103b441
    • Tools Dart version 1.23.0-dev.2.0

[✓] Android toolchain - develop for Android devices (Android SDK 25.0.2)
    • Android SDK at /Users/jackson/Library/Android/sdk
    • Platform android-25, build-tools 25.0.2
    • ANDROID_HOME = /Users/jackson/Library/Android/
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/bin/java
    • Java version: Java(TM) SE Runtime Environment (build 1.8.0_91-b14)

[-] iOS toolchain - develop for iOS devices (Xcode 8.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 8.2.1, Build version 8C1002
    • ios-deploy 1.9.1
    ✗ libimobiledevice is incompatible with the installed Xcode version. To update, run:
      brew update
      brew uninstall --ignore-dependencies libimobiledevice
      brew install --HEAD libimobiledevice
    • CocoaPods version 1.2.0

[✓] Android Studio (version 2.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Gradle version 2.14.1

[✓] IntelliJ IDEA Community Edition (version 2016.3.4)
    • Dart plugin version 163.13137
    • Flutter plugin version <IP_ADDRESS>

[✓] Connected devices
    • Nexus 5       • 07e401a0d00b3699                         • android-arm • Android 6.0.1 (API 23)
    •               • 14710ae2e8497590643751c5532d907ed1ff2eed • ios         • iOS  ()
    • iPhone 7 Plus • 153C0032-F485-4E73-9732-8E60C7D75B11     • ios         • iOS 10.2 (simulator)

See also https://github.com/flutter/flutter-intellij/issues/828

Yup, I can repro this aswell (placing the breakpoint on return new Scaffold(


Replacement of "compile" with "implementation"

As "compile" is going to be deprecated end-2018, this PR replaces with "implementation" that is the new usage.

What should I do? Didn't understand.

@TurboProgramming disable the linter evaluation.


Revisit skaffold profiles

Resolves #411
This PR introduces the following changes:

Removes unnecessary local profile for minikube and docker-desktop as these are handled natively.
Removes Push option in Build phase of each environment profile - local profiles will never push (unless overridden), and when remote contexts are in use then push will happen automatically (unless overridden).
Simplifies naming convention for the additional profiles.
Changes build artefact discovery algorithm - native Skaffold Analysis, followed by discovery from base docker-compose file.
Adds UpdateSkaffoldBuildArtifacts method to enabled automatic build artefacts list update in skaffold.yaml - this happens at render time given the project was initialised with skaffold support.
Moves "Build" part of the pipeline from individual profiles to the top level (global) pipeline for better readability.
Minor Skaffold profiles refactoring changes.

@ezodude Yeh, extract / refactor to follow in the ongoing PRs.


Remove incorrect info

https://github.com/MicrosoftDocs/windows-itpro-docs/issues/6810
tested on windows server 2016

Dear @JohanFreelancer9,
kindly do the copy editor review for this PR.
Dear @e0i, for your information
Thank you


hugo new -f yaml fails in v0.24

It used to work before 0.23, and the doc says -f is supported: http://gohugo.io/commands/hugo_new/
$ hugo new foo.md -f yaml
Error: unknown shorthand flag: 'f' in -f

Usage:
  hugo new [path] [flags]
  hugo new [command]

Available Commands:
  site        Create a new site (skeleton)
  theme       Create a new theme

Flags:
      --editor string   edit new content with this editor, if provided
  -h, --help            help for new
  -k, --kind string     content type to create
  -s, --source string   filesystem path to read files relative from

Global Flags:
      --config string    config file (default is path/config.yaml|json|toml)
      --log              enable Logging
      --logFile string   log File path (if set, logging enabled automatically)
      --quiet            build in quiet mode
  -v, --verbose          verbose output
      --verboseLog       verbose logging

Use "hugo new [command] --help" for more information about a command.

$ hugo version
Hugo Static Site Generator v0.24 darwin/amd64 BuildDate: 2017-06-22T14:13:34-05:00

I have updated the docs and the release notes: That flag is removed as it has no practical appliance anymore; we use the archetype files as you write them -- and all front matter formats are supported.

The conversion to YAML was actually useful to me because YAML is best supported in my world (R language). I will need to work much harder to support TOML. Is it hard to keep this argument? Thanks!

Is it hard to keep this argument? Thanks!

It will not happen. If you want YAML: Create your archetype file(s) with YAML format. Easy.

Yeah I know that. The problem is this: a theme author may have provided a TOML-based (or JSON) archetype file, but the user does not have one. In this case, hugo new will generate the metadata in TOML, and I wish it could convert it to YAML instead.
If hugo convert toYAML can work on a single file instead of a whole directory, that will help, too.
I can certainly ask users to create a YAML-based archetype file, but it will be better if fewer instructions are needed.

If hugo convert toYAML can work on a single file instead of a whole directory, that will help, too.

That we can do, but you would have to create an issue for that.


Hint if a final field "overrides" non-final field

If a final field "overrides" a non-final field, the setter for the superfield becomes a black hole eating all values assigned to the field, never to be seen again.
For extra style points, the hint could be omitted if the setter is also explicitly overridden and/or the super field is accessed using super, because that indicates the user knows what he is doing. Without those indicators, I would argue it is certainly a bug, and we could save the user from one of those "wtf moments" that Dart wasn't supposed to have.
Of course, using fields to "override" other fields is kind of a grotesque coding style in general, so it might be better to just always hint about this.

Sent a CL for review https://codereview.chromium.org/1870423002


Contracts: return arbitrary sized buffers

Several contract runtime functions require to return arbitrary sized buffers. These functions are:

ext_get_storage. This PR lifts the limitation on the storage value size. Now it can be arbitrary long. Thus, the length of the buffer that ext_get_storage returns needs to be arbitrary long too.
ext_call. Callee can return a buffer of arbitrary size.
ext_create. Returns the address (or rather T::AccountId) of the created contract. Typically, it is of fixed sized, but we still have to treat it as of arbitrary size since the value depends on the result of T::AccountId::encode (after all, nothing prevents it from returning vectors of different sizes).

so, there is a clearly need for returning arbitrary sized buffers from the contract runtime functions. I reviewed a few possible approaches how to implement this pattern but settled on this one. It goes like this:

Add a buffer to the execution context of the contract, let's call it scratch_buf.
Expose functions for reading contents of scratch_buf: ext_scratch_size and ext_scratch_copy.
Each function that needs to return an arbitrary sized buffer writes it's result to the scratch_buf.

After executing a function that returns arbitrary sized buffer the contract can copy the buffer to the contract's memory calling ext_scratch_copy.
Also, this PR makes an optimization: the return buffer returned with ext_return now is written to the designated buffer (instead of allocating a new one). ext_call passes ctx.scratch_buf as a designated buffer, so there is no intermediate buffer.

Who pays for scratch_buf?

Fee to fill the scratch_buf will be charged:

for ext_get_storage the contract pays it immediately (summed with the gas for db access),
for ext_create the fee could be collected immediately.
for ext_call it's on the callee. Should be accounted in the callee's ext_return call.

Fee is charged for allocation and copy. We can conservatively charge fee for the every allocation even though in the most cases we can actually reuse the scratch buffer's memory. Down the line we can investigate if it's more appropriate to charge for allocation only if the buffer has grown.
The current contract always pays for reading the contents of the scratch_buf.

are many created? is it always there? how long does it stick around? why not copy the data up to a provided length directly into a receiving buffer?

No, there is only the single buffer and it stays until disposing the context. It is always reused in the current scheme.

why not copy the data up to a provided length directly into a receiving buffer?

Good question! The problem with that is you can never know in advance how big buffer you need to provide. This is not a problem for ext_create since the T::Account has practically static size for the particular smart-contract instantiation. With ext_get_storage it's a bit worse but still works, since, after all, it is the contract who puts data there and can always use some invariants (like, the data in ext_put_storage never exceeds certain size).
But ext_call is a deal breaker. It's the callee who decides how big the return buffer will be. Sure, the caller can try to guard against this by allocating a big buffer, and this will work in most cases indeed (although this might require an allocation of another 64k of memory). But the slight chance of exceeding the provided buffer will be always there, and the case when it happens is a total disaster from the userspace perspective: you spend your gas and didn't get the result back. In some cases you can retry, but in others you can't (What if the called code is not pure?). But I agree, this is simpler approach.

It is not always viable to provide length upfront.
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-211.md for motivation. EIP-211 takes a different approach. The callee returns a slice of its memory that is available to the caller until the next call via additional EVM instructions. With WASM the callee could just return a slice that would be allocated and copied to caller's heap so that the caller could deallocate it when they don't need it anymore.

EIP-211 takes a different approach

Wait, IIUC, this is actually very similar approach to the one presented here. It also talks about "a virtual buffer". It behaves similarly "At the next call, the buffer is overwritten". Even details like "Upon executing any call-like opcode, the buffer is cleared (its size is set to zero).", lol.

With WASM the callee could just return a slice that would be allocated and copied to caller's heap so that the caller could deallocate it when they don't need it anymore.

That's interesting idea, but this will increase actual peak memory usage. Not sure what they mean here:

Keeping the memory of the callee until the next call-like opcode does not increase the peak memory usage in the following sense; any memory allocation in the caller's frame that happens after the return from the call can be moved before the call without a change in gas costs, but will add this allocation to the peak allocation.

This is an interesting observation though:

As an optimization, it is possible to share the return data buffer across call frames because at most one will be non-empty at any time.

It would be good to get a full overview of compute (copy) and allocation/memory costs in the contract module. Particularly if it could be done in an schematic/diagrammatic fashion.

Yep agree. Do you want to put this on hold until then?

On 13 Sep 2018, at 10:01, Gav Wood<EMAIL_ADDRESS>wrote:
It would be good to get a full overview of compute (copy) and allocation/memory costs in the contract module. Particularly if it could be done in an schematic/diagrammatic fashion.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Not necessarily. I think this is probably fine, but we will need for formalise the modules ready for proper inspection and proving/rationale against attacks, and this just happens to be one of the more obvious mechanisms to look at.

Will merge since the code looks good but I think once contract logs/events are done we should refocus on getting a "Yellow Paper" version of the contracts module done and audited.


Support opus encoded webm adaptive audio

Audio formats: 249, 250, 251
Example: https://www.youtube.com/watch?v=cZYNADOHhVY
See: https://en.wikipedia.org/w/index.php?title=YouTube&oldid=800910021#Quality_and_formats

Solved by 4a71898463bb27a3044b25ccbcf34f2f8e505f38


Fix cmake tests

Some of the tests built with cmake were failing while the same test built with autotools were passing

Fixed naming of cmake tests to easily correlate with autotools tests.
Fixed broken paths to test executables.
Fixed defining project version patch - tcmalloc_unittest and tcmalloc_debug_unittest

Related issues: #1422, #1477

Thanks for the patches. Looks fine. But somehow github is telling me this is "draft". Not sure what this means and whether it is intentional or not. Just let me know if you want me to merge those.

Thanks. This is a bit of a work in progress as I hope to add a few more fixes for the remaining tests relatively soon.

BTW, please consider this thought: I don't think it is good idea for us to try and to 100% match autotools-based features.
For example, I.e. am seeing that cmake lacks proper support for libtool-like feature of being able to build both libtcmalloc.so and libtcmalloc.a.  Perhaps we simply let users choose which one option to build via BUILD_SHARED_LIBS option.
And same likely applies elsewhere (we do try in autotools make file to test "with asserts" config, which we don't have to duplicate in cmake etc).
I.e. just give people simplest way to do cmake-way of building (most or all of) gperftools. Perhaps because they love cmake, and/or perphaps because cmake has IDE integrations. etc.
So feel free to reach out if you want to discuss direction.

BTW have a look at https://github.com/gperftools/gperftools/commit/a02ac30bbfb698992c2d0e9cd4edd5f7bd2de053
I intend cmake bits to get into similar simplified shape (actually even more). We're currently way too complicated there.


Why does Endpoint contain query parameters?

Please provide descriptions...
Query Parameters are endpoint/resource specific. Therefore they are located there... Passing query parameters is dynamic, as described in the presentation.


chore: move Tendermint CheckForMisbehaviour to misbehaviour_handle.go

Description

please first review this pr
closes: #2006 (tendermint)
Commit Message / Changelog Entry
type: commit message

see the guidelines for commit messages. (view raw markdown for examples)

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md).
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards.
[ ] Wrote unit and integration tests.
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/).
[ ] Added relevant godoc comments.
[ ] Provide a commit message to be used for the changelog entry in the PR description for review.
[ ] Re-reviewed Files changed in the Github PR explorer.
[ ] Review Codecov Report in the comment section below once CI passes.

Looks like you need to update the PR description for the automated changelog stuff to work

The description is just so we all can agree on the changelog entry, it still needs to be manually entered when merging the pr. I think it is fine to skip an entry for these changes

Codecov Report

Merging #2803 (7e9aec6) into main (f9b8d6a) will not change coverage.
The diff coverage is 100.00%.

Additional details and impacted files

@@           Coverage Diff           @@
##             main    #2803   +/-   ##
=======================================
  Coverage   78.83%   78.83%
=======================================
  Files         178      178
  Lines       12304    12304
=======================================
  Hits         9700     9700
  Misses       2185     2185
  Partials      419      419

Impacted Files
Coverage Δ

modules/light-clients/06-solomachine/update.go
92.00% <ø> (-0.50%)
:arrow_down:

modules/light-clients/07-tendermint/update.go
87.40% <ø> (-2.42%)
:arrow_down:

...ight-clients/06-solomachine/misbehaviour_handle.go
86.66% <100.00%> (+1.66%)
:arrow_up:

...light-clients/07-tendermint/misbehaviour_handle.go
85.57% <100.00%> (+6.41%)
:arrow_up:


feat: delete not referenced markdown files

Currently it would delete the following files, which is IMO ok.
Removing unused page: /Users/max/development/playwright.dev/nodejs/docs/cheat-sheet.mdx
Removing unused page: /Users/max/development/playwright.dev/nodejs/docs/troubleshooting.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/cheat-sheet.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/chrome-extensions.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/library.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/mobile.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-advanced.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-annotations.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-cli.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-configuration.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-fixtures.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-install.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-parallel.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-pom.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-reporters.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-retries.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/test-snapshots.mdx
Removing unused page: /Users/max/development/playwright.dev/dotnet/docs/troubleshooting.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/cheat-sheet.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/chrome-extensions.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/library.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/mobile.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-advanced.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-annotations.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-cli.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-configuration.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-fixtures.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-install.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-parallel.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-pom.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-reporters.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-retries.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/test-snapshots.mdx
Removing unused page: /Users/max/development/playwright.dev/java/docs/troubleshooting.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/cheat-sheet.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/library.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/mobile.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-advanced.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-annotations.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-cli.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-configuration.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-fixtures.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-install.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-parallel.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-pom.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-reporters.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-retries.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/test-snapshots.mdx
Removing unused page: /Users/max/development/playwright.dev/python/docs/troubleshooting.mdx

How about replacing the pages with a stub like "This functionality is not available in Python" ?


Error while training

When I tried to run the example code, I got the following error.
Command:
python train.py task=mt80 model_size=48 batch_size=1024

Error Message:
Error executing job with overrides: ['task=mt80', 'model_size=48', 'batch_size=1024']
Traceback (most recent call last):
  File "/home/yutaka/rl_project/tdmpc2/tdmpc2/train.py", line 56, in train
    trainer.train()
  File "/home/yutaka/rl_project/tdmpc2/tdmpc2/trainer/offline_trainer.py", line 47, in train
    assert self.cfg.task in self.cfg.data_dir, \
omegaconf.errors.MissingMandatoryValue: Missing mandatory value: data_dir
    full_key: data_dir
    object_type=dict

Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.

All of the library should be aligned with the file in the docker/environment.yaml.

please open the “config.yaml” and paste the dataset path at data_dir

@VitaLemonTea1 Thank you so much!


Fix docstrings

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.94%. Comparing base (3ca7da3) to head (2b19b2c).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #54   +/-   ##
=======================================
  Coverage   93.94%   93.94%
=======================================
  Files          26       26
  Lines         512      512
  Branches       71       71
=======================================
  Hits          481      481
  Misses         31       31

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


SABnzbd PostProcessing Issues

Hi,
I just downloaded the latest file and I have been having issues with SABnzbd. I tried to debug a little bit but haven't had a chance to really go through the updated code and was wondering if you can help. I have done a clean install on my Windows 10 machine with Python3 and everything works fine if I use manual.py. but postprocessing through SABnzbd is broken. This is what I have been able to find so far

In autoProcess.ini if output-directory = None under [SABNZBD] settings then the script uses "None" as an output folder which causes an error during converting.

2020-03-11 10:35:48 - resources.mediaprocessor - ERROR - C:\ffmpeg\bin\ffmpeg.exe -fix_sub_duration -hwaccel dxva2 -i c:\Downloads\Complete\TV Shows\House, M.D. S06E01 Broken (Part 1).mkv\House, M.D. S06E01 Broken (Part 1).mkv -vcodec libx264 -map 0:0 -vb 1094k -c:a:0 aac -map 0:1 -ac:a:0 2 -b:a:0 256k -metadata:s:a:0 language=eng -strict experimental -c:a:1 ac3 -map 0:1 -disposition:a:1 +default -ac:a:1 6 -b:a:1 1536k -metadata:s:a:1 language=eng -c:s:0 mov_text -map 0:2 -metadata:s:s:0 language=eng -f mp4 -threads 0 -y None\House, M.D. S06E01 Broken (Part 1).mp4

This can be solved by removing "None" from the config file and just leaving the setting blank. Which brings us to the second issue.

If you look at the FFmpeg command the file path is not in "" and that causes the command to throw an error. I am not sure why that is happening.

Maybe I am missing something obvious. Will appreciate your help.
Thanks

None shouldn't be under the config, was this an artifact from migrating the configuration file? (You can check the backup file produced and see if that was present).
The FFMPEG command isn't passed to popen as a string and what you're seeing in the error isn't the direct command, the parameters are passed as an array of options the quotes don't matter and are only absent just because that array is converted into a string for logging purposes
Its failing because you have a None directory getting injected into the output
I'm not sure why that None value would be there but it shouldn't be created from the migration and if it is let me know and I'll try to address it

@mdhiggins
I tested this on my end and if the original config had the value 'none' it was migrated over with it.
Original Test:
autoProcess.ini.backup.txt
Migrated:
autoProcess.ini.txt

Quick question how do you migrate? I didn't do any migration, just downloaded the master branch from github and that was it. If you look at config/autoProcess.ini.sample file you see the following default values:

[SABNZBD]
convert = True
sickbeard-category = sickbeard
sickrage-category = sickrage
couchpotato-category = couchpotato
sonarr-category = sonarr
radarr-category = radarr
bypass-category = bypass
output-directory = None
*
the last line is where "None" is coming from
I think I might be doing something wrong here :)

Delete the None from
"output-directory = None"
and try again.

Ah good catch! That's a mistake on the sample file and None shouldn't be in there
Migrating was something that happened for people coming from old versions of the script and I was confused because I didn't have logic in place to account for None being set before but it makes sense. Yeah just delete None and I'll update the sample file to fix that mistake. My bad not sure how None got in there

c09682446e875f22c8a5dc85161357e61a5ae69b


Title: Adding a recipe app using JS

Is your feature request related to a problem? Please describe.
I would like to add a recipe app using html, css, js which will use FreeMealDB API to fetch the recipes
Describe the solution you'd like.
In this app we can search through various dishes and get access of their recipes.
Describe alternatives you've considered.
Using HTML, CSS , JS
Add any other context or screenshots about the feature request here.
Please assign me this issue under GSSOC,24

@Aashi19234 Thank you for providing your insight but it is not required as of now.


[BUG] Unable to select token for depositing despite having balance in the wallet

Overview
Unable to select token for depositing despite having balance in the wallet. Ex: Having a balance of some goerli ETH in wallet, was unable to select the token for depositing.
Steps to reproduce

Select Deposit Tab
Select Source Chain field
Select Goerli
Select Token field
Try to select ETH(Ethereum) - Make sure you have some ETH in your wallet. But this action cannot be performed since ETH will be disabled showing it's balance as 0

Loom video
https://www.loom.com/share/21fb8820ca464dd6a5fcd8b8b2ea04eb
Tested on branch: https://github.com/webb-tools/webb-dapp/pull/850

Closing this issue as reinstalling node modules helped resolve it.


Inconsistent usage of ContentType constants

Currently, in EdgeX several handler functions set their content types with string literals instead of the constants defined in core contracts. There should be a complete suite of constants usable for all the returned types of endpoints.

Handled in PR #1768. This issue can be closed with merge of PR #1768.


Adding Known Unity 2019 MSBuild Issue

Overview
Starting a known issues section and documenting MSBuild2019 issue

/azp run mrtk_docs

I believe that I also deleted a link up above in the release notes (i..e there's like, changes, there was "known issues" - it might be worth just reverting what I did there).


Fix: Folder-mounted Google Drive sidebar visibility

Summary

Registry-artifact-based Google Drive mounting point detection

[x] Add method for reading Google Drive registry artifacts and parsing them as JSON.

[x] Add method for safely traversing the resulting JSON and creating/returning new CloudProvider objects based on the data inside.

[x] Call these methods after the old approach that uses the "root_preference_sqlite" file. Google Drive now appears under Cloud Drives" in the sidebar regardless of whether it is mounted as a drive or a folder.

GoogleDriveCloudDetector private fields

[x] Add private fields to GoogleDriveCloudDetector (GDCD) for the strings used to access/traverse Google Drive registry artifacts.

[x] Add field to GDCD for the logger service so we can log warnings when artifact access/traversal attempts fail.

Icon-file-getting logic

[x] Create method for getting the icon file so we can reuse this logic.

[x] Improve null safety of icon file getting logic.

Resolved / Related Issues

https://github.com/files-community/Files/issues/15698

Steps used to test these changes

Under Google Drive Preferences -> Settings -> Google Drive Streaming Location, choose "Folder" or "Drive Letter".

Folder

I opened Files and looked at the sidebar and "Google Drive" was there under "Cloud Drives".

I clicked on "Google Drive" and it opened my drive with all its contents viewable and accessible, as expected. I opened a few of my files (images and pdfs) and they opened as expected.

Drive Letter

I opened Files and looked at the sidebar and "Google Drive" was there under "Cloud Drives".

I clicked on "Google Drive" and it opened my drive with all its contents viewable and accessible, as expected. I opened a few of my files (images and pdfs) and they opened as expected.

I also found that everything worked exactly the same if I had the entire old approach that uses the "root_preference_sqlite" file commented out. However, I did not want to commit it in this state because my testing was not especially thorough, but it might be worth looking into whether this will work now entirely without the old approach.

Thank you for the contribution.
Is this ready?

@0x5bfa No problem. I would say it's ready to be merged in the sense that it seems to be working based on the steps I followed in the "Steps used to test these changes" section above.
However, I just wanted to get a second opinion on the code I wrote on lines 191-196.
When Google Drive is mounted as a folder, the value stored in mount_point_path will be a proper path that can be passed to a method like StorageFolder.GetFolderFromPathAsync without issue.
But when Google Drive is mounted as a drive, the value stored in mount_point_path is JUST the drive letter (e.g. "G"), and as such causes an error when passed to a method like StorageFolder.GetFolderFromPathAsync.
The solution I came up with for this issue was to check if the value stored in mount_point_path is exactly one character in length, and if it is, get a DriveInfo object for that character and get the proper useable path from that object.
The effectiveness/safety of this solution depends on two assumptions:

If the value stored in mount_point_path is one character in length, it must be a drive letter.
This drive letter will be a valid drive (if it's not, the DriveInfo constructor will throw an ArgumentException).

My particular solution is what allows us to get a useable path from the registry-artifact method regardless of Google Drive's mount point, and therefore what would allow us to potentially remove the old "root_preference_sqlite" mount point detection method if we wanted.
So I was just curious what your team's thoughts might be on my approach and on this issue in general.

I just made a new commit that makes the logic that gets the valid path for a single-character mount_point_path value a little safer.
In my opinion, it is now ready to merge. But please let me know if there is anything you want me to change.

I found two minor issues, Google Drive set to mirror to a user selected folder will show both the redirect folder/drive (This show one folder that redirects to the store location) and another that goes directly to the store location. Preferably it would only show the direct folder in mirror mode.
Also the Google drive is now always shown in the drives section instead of being hidden like 3.5.6

@Josh65-2201 , I looked into the first issue today. I am still working on it, but I just wanted to share what I've found.
I took screenshots of the sidebar as it appears on my computer under the following conditions (all with my Google Drive set to mirror files):

With my code commented-out and with Google Drive mounted as a drive

With my code active and with Google Drive mounted as a drive

With my code commented-out and with Google Drive mounted as a folder

With my code active and with Google Drive mounted as a folder

I am thinking of changing my code so that it appends "My Drive" to the path I get from the registry, so it will be weeded out as a duplicate DriveItem in CloudDrivesManager.UpdateDrivesAsync() if a DriveItem with Path set to the "My Drive" path was already added by the Sqlite detection approach. Or please let me know if you would prefer a different solution.
As for the second issue, under what conditions is Google Drive hidden in 3.5.6?
Are you saying it's an issue that it's no longer hidden under these conditions?
My understanding was that my pull request should result in Google Drive no longer being hidden from the drives section when Google Drive is mounted as a folder.

Google drive should always be hidden from the drives section and only show in the cloud drives section.

Google drive should always be hidden from the drives section and only show in the cloud drives section.

Ah okay, I will look into that as well, thank you.

Sorry for the delay, I'm still investigating how to tell from the Sqlite database tables ("roots" and "media") that Google Drive is mirrored as opposed to just streaming. I'm hoping to have some real time to work on it this weekend.
In the meantime, I just wanted to ask, did it cause any issues that I updated the branch the other day? I just clicked the "Update branch" button on GitHub on this PR and then pulled the changes down to my local branch. But I just noticed there is a notification now that @yaira2 "force-pushed the main branch." Was this to fix something I did? And is the way I updated the branch (with a merge commit as opposed to rebase) the preferred way?

In the meantime, I just wanted to ask, did it cause any issues that I updated the branch the other day? I just clicked the "Update branch" button on GitHub on this PR and then pulled the changes down to my local branch. But I just noticed there is a notification now that @yaira2 "force-pushed the main branch." Was this to fix something I did? And is the way I updated the branch (with a merge commit as opposed to rebase) the preferred way?

It's unrelated, we have protections enabled so you don't have to worry about accidently pushing to main.

Just to give an update, today I figured out how to create logs in separate files of the database inspections I've been doing.
I have made a commit to my GoogleDriveDetection branch with this logging in place.
I plan to remove this logging once I determine and can demonstrate:
A) what this implementation of GetProviders "yield returns",
B) what the contents of various Google Drive artifacts are (e.g. registry keys and Sqlite databases), and
C) whether any of these artifacts contain useful information for determining user preference configurations that tell us when we should or shouldn't yield return certain paths.
I plan to use the logging to gather data related to A, B, and C under these conditions:
My code active; Streaming; folder-mounted
My code active; Streaming; drive-mounted
My code active; Mirrored; folder-mounted
My code active; Mirrored; drive-mounted
My code inactive; Streaming; folder-mounted
My code inactive; Streaming; drive-mounted
My code inactive; Mirrored; folder-mounted
My code inactive; Mirrored; drive-mounted
I also learned about the existence of a "mirror_metadata_sqlite.db" file from this article, it might be useful to try to lookup this database as well.

Thanks for the update.

With the two commits that I just made, I think that the first issue Josh
mentioned has been fixed (see my copied commit message below).
I have also confirmed that when running the main branch, that Google Drive still
appears under Drives in the sidebar. As such, I think this issue is not caused
by getting Google Drive paths from the registry in
GoogleDriveCloudDetector#GetProviders. I would happy to investigate this
issue, but maybe in a separate PR.
I still have logging in place in case you want to use it to confirm the current
behavior of everything. Let me know if you think it looks good and I'll make a
new commit removing all the logging.
Begin copied commit messages:
AddMyDriveToPathAndValidate; is_my_drive
Renamed ValidatePath to AddMyDriveToPathAndValidate, and made it also append
`My Drive' to the path it is given.
The only path we ever get from the media table is the drive letter
(if Google Drive streaming location is set to Drive letter, otherwise we get nothing
from the media table) followed by :\. As such, I added a call to
`AddMyDriveToPathAndValidate' on this path.
We only find paths in the roots table whose is_my_drive is true when My Drive syncing options is set to Mirror files. I believe these paths are the ones @Josh65-2201
was referring to when he said

Google Drive set to mirror to a user selected folder will show both the
redirect drive/folder (This show one My Drive folder) and another that goes
directly to the store folder location.

The path we get from roots is the one that "goes directly to the store folder
location" (hence its is_my_drive is true).
With this PR, we now get the "redirect drive/folder" as well, from the registry.
As such, since Josh said

Preferably it would only show the redirect drive/folder and add /My Drive to
the path, then hide all other locations

I added a call to AddMyDriveToPathAndValidate on every path we get from the
registry, and I made the roots table read loop continue if it finds a path
whose is_my_drive is true.
my drive shortcut fix; registry logging
Handled the case where My Drive is a shortcut (when "My Drive syncing options"
is set to "Mirror files").
Added logging for registry values.

Is this ready for code quality assurance review?

@0x5bfa The only things I can think of that you might want me to change first are bringing the branch up-to-date with the parent main, and removing the // TESTING logging mentioned above. Please let me know if you'd like me to do these before the QA review.

I just brought my branch up-to-date with the main Files branch. I also moved the Vanara comment and changed my file logging to Debug.WriteLine calls inside preprocessor checks for Debug mode. Let me know if you want me to change anything else.

@0x5bfa thanks for the review. I just pushed a commit that addresses all of your suggested changes. I hope this was the right way to do this, sorry I don't have much experience with PRs and code reviews. Please let me know if I should have done it differently or if you want me to do anything else.

Would you like me to click "Resolve conversation" on the reviews that I've addressed in the last couple commits?

Yeah, and one thing is missed (while to for change).

Great, thanks! I noticed one of the tests failed though when I pushed. The error message says:
Element Button(50000) violated rule 'Focusable sibling elements must not have the same Name and LocalizedControlType.'.
It looks like it's coming from an accessibility testing tool called Axe. Do you know if this is related to my code? I can try to debug it if you think it is.

It looks like the AxeHelper.AssertNoAccessibilityErrors assertion in InteractionTests.Tests.GeneralAppTests failed. I ran this test (along with the other Interaction tests) on my computer and they passed (see below).
I also noticed there are two calls to AxeHelper.AssertNoAccessibilityErrors in GeneralAppTests, and the first call is wrapped in a try-catch with a comment above it that says First run can be flaky due to external components. Maybe this has something to do with it? I could try pushing again with some inconsequential change to see if it fails again.

@yaira2 can return the CI, or you can squash the latest two commits and force push.

Awesome, it looks like they're all passing now, thanks. I just squashed and force-pushed.

@0x5bfa @Josh65-2201 is this good from your end?

Right now I'm still seeing the issue of Google Drive showing in the Drives section on the sidebar and home page when mounted using drive letter in Google Drives settings. Folder location is correct in all modes under the cloud section.

@Josh65-2201 Thanks for reminding me of this issue. I just pushed a commit that seems to fix it on my end. Please let me know what you think.
I realized the issue has to do with how we're setting/reading from App.AppModel.GoogleDrivePath.
In GoogleDriveCloudDetector.GetProviders(), we're setting App.AppModel.GoogleDrivePath right before each place where we "yield return" a CloudProvider, and we're setting it to the CloudProvider's SyncFolder path each time.
In Files.App.Services.RemovableDrivesService.GetDrivesAsync(), we're then checking the contents of App.AppModel.GoogleDrivePath against each DriveInfo instance returned from System.IO.DriveInfo.GetDrives(), ideally to filter out Google Drive from the potential adds to a "Drives" section.
However, Files.App.Services.RemovableDrivesService.GetDrivesAsync() actually gets called before GoogleDriveCloudDetector.GetProviders(), so the contents of App.AppModel.GoogleDrivePath is an empty string when the former is called, causing the Google Drive filtering attempt to fail.
My solution was to make my GetGoogleDriveProvidersFromRegistryAsync method public and static, and just enumerate over its yield returns directly in Files.App.Services.RemovableDrivesService.GetDrivesAsync() to filter out a G:\\ path. I made a few minor adjustments to make this possible.
Obviously this introduces some redundancies/inefficiencies, but it seems like a viable quick fix for now, but let me know if you'd prefer a different approach.

I also wanted to mention that the call to RemovableDrivesService.GetDrivesAsync() that happens before the cloud drives get detected can be traced back to Files.App.ViewModels.MainPageViewModel.OnNavigatedToAsync, as you can see in this screen shot of my call stack when I was debugging.

Working as expected now

Great, thanks!

I just brought the fork up-to-date with the main repo and made a few minor formatting changes. The CI was failing at first, it was that same issue with the Axe accessibility test with sibling elements, and then there was an x64 Release build fail for some reason (it wouldn't say why), but now everything seems good.
Please let me know if you want me to change anything else.

Thanks for checking.

Is there anything I can do to help with testing? I made this screen recording of a test I did just now running the repo with my changes under four different config conditions, just to document how I ran it and what I looked for.
https://drive.google.com/file/d/1bUYS0T3HQcxmzROW_wlNlP8zQjxze035/view?usp=sharing