ANY_VALUE function is unimplemented

Hello, I've recently started using this emulator for running integration tests and noticed that the ANY_VALUE function will throw the following error:
googleapi: Error 400: failed to format query [...] any_value function is unimplemented

Is this a known issue? If so, are there any workarounds? Unfortunately, the field being aggregated in the test is a STRUCT, so using an alternative aggregate function like MAX/MIN for testing purposes is also not supported.

@goccy Thank you for addressing this issue so quickly! Will these changes be released soon to update the latest ghcr.io/goccy/bigquery-emulator image?

@Dascienz  Thank you for your report ! I have been released v0.2.8 to fix this problem ! Please confirm it .

@goccy Yes, I can confirm that the problem has been fixed. The ANY_VALUE function is now recognized, thank you.


cargo --version reports something other than tag version

Is this intentional? Previously cargo --version matched the GitHub tag name. Now it seems to report something else, which I'm not quite sure how to interpret. For example, the 0.27.0 tag reports "1.26.0" and the 0.28.0 tag reports "1.27.0."

Indeed this is intentional! The tag is an internal version for Cargo but otherwise --version is intended to match rustc itself

@alexcrichton hmm ... OK, I'm glad to hear it's intentional. I'm not sure it works as expected, though. For the Homebrew formula it was reporting
iMac-TMP:~ joe$  /usr/local/Cellar/rust/1.27.0/bin/cargo --version
cargo 1.26.0
iMac-TMP:~ joe$  /usr/local/Cellar/rust/1.27.0/bin/rustc --version
rustc 1.27.0

up until today when I happened to bump cargo to 0.28.0 such that now it says
iMac-TMP:homebrew-core joe$ /usr/local/Cellar/rust/1.27.0/bin/cargo --version
cargo 1.27.0
iMac-TMP:homebrew-core joe$ /usr/local/Cellar/rust/1.27.0/bin/rustc --version
rustc 1.27.0

Why the initial divergence where it was saying 1.26.0?

In particular, cargo 0.27.0 (before today) and cargo 0.28.0 (today) were both built with rustc 1.27.0 (or at least I think so!) due to
https://github.com/Homebrew/homebrew-core/blob/4b0f36382f73db6478a53bb5f9fd68feab4e4603/Formula/rust.rb#L98

Oh how curious! Perhaps it's shenanigans with packaging in Homebrew? I'm not entirely sure how that all works out :(

OK. I'll keep an eye on it. My guess is that the version is somehow hard coded as opposed to actually looked up from rustc's at build time. Thanks @alexcrichton

@alexcrichton the mismatch issue also affects the version installed via rustup:
iMac-TMP:~ joe$ rustc --version
rustc 1.27.2 (58cc626de 2018-07-18)
iMac-TMP:~ joe$ cargo --version
cargo 1.27.0 (1e95190e5 2018-05-27)

Yes point releases only affect rustc, not Cargo (Cargo hasn't needed a point release yet)

Ah, OK. I'll watch out for divergence on non-point releases then! Thanks for the clarification.


added html&css files

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue no.)

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Explain the Testing instructions
Test Configuration:

Operating system:
Version:
Text-editors used:

Checklist:

[ ] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

hey @aishwaryas15 please attach the ss here ..

Ya, sure I'll change then.. this is from Unsplash so every day it will be changing after refresh every day.

Ya, sure I'll change then.. this is from Unsplash so every day it will be changing after refresh every day.

ok @aishwaryas15 ...but the bg is repeated kindly make the changes

Is it fine? So i can further merge it

Is it fine? So I can further merge it.

ok now its cool @aishwaryas15 :)


File upload for project creation not wokring

Hello,
I am using the self-hosted version (v. 1.0). However, the file upload does not work when I try to create a new project. I don't get any error in the GUI, the screen just stays the same. When I press "Proceed" a second time, it tells me "Project title exists". And the project does indeed exist, however without any records.
Here is the outpout after staring it:
"UI:           http://localhost:4455/app/"
"Minio:        http:// =:7053"
"MailHog:      http://localhost:4436/"

I am running it on Windows.
I am unsure which logs could be relevant, but this is the Docker-output:
refinery-refinery-gateway-1 | ValueError: Invalid endpoint: http:// =:7053
refinery-refinery-gateway-1 | ERROR:graphql.execution.utils:Traceback (most recent call last):
refinery-refinery-gateway-1 |   File "/usr/local/lib/python3.7/site-packages/graphql/execution/executor.py", line 452, in resolve_or_error
refinery-refinery-gateway-1 |     return executor.execute(resolve_fn, source, info, **args)
refinery-refinery-gateway-1 |   File "/usr/local/lib/python3.7/site-packages/graphql/execution/executors/sync.py", line 16, in execute
refinery-refinery-gateway-1 |     return fn(*args, **kwargs)
refinery-refinery-gateway-1 |   File "./graphql_api/query/transfer.py", line 65, in resolve_upload_credentials_and_id
refinery-refinery-gateway-1 |     project_id, user.id, file_name, file_type, file_import_options
refinery-refinery-gateway-1 |   File "./controller/transfer/manager.py", line 43, in get_upload_credentials_and_id
refinery-refinery-gateway-1 |     return s3.get_upload_credentials_and_id(org_id, project_id + "/" + str(task.id))
refinery-refinery-gateway-1 |   File "./submodules/s3/controller.py", line 367, in get_upload_credentials_and_id
refinery-refinery-gateway-1 |     response = minio.get_upload_credentials_and_id(target_bucket)
refinery-refinery-gateway-1 |   File "./submodules/s3/connections/minio.py", line 172, in get_upload_credentials_and_id
refinery-refinery-gateway-1 |     use_ssl=False,
refinery-refinery-gateway-1 |   File "/usr/local/lib/python3.7/site-packages/boto3/__init__.py", line 93, in client
refinery-refinery-gateway-1 |     return _get_default_session().client(*args, **kwargs)
refinery-refinery-gateway-1 |   File "/usr/local/lib/python3.7/site-packages/boto3/session.py", line 275, in client
refinery-refinery-gateway-1 |     aws_session_token=aws_session_token, config=config)
refinery-refinery-gateway-1 |   File "/usr/local/lib/python3.7/site-packages/botocore/session.py", line 874, in create_client
refinery-refinery-gateway-1 |     client_config=config, api_version=api_version)
refinery-refinery-gateway-1 |   File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 93, in create_client
refinery-refinery-gateway-1 |     verify, credentials, scoped_config, client_config, endpoint_bridge)
refinery-refinery-gateway-1 |   File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 362, in _get_client_args
refinery-refinery-gateway-1 |     verify, credentials, scoped_config, client_config, endpoint_bridge)
refinery-refinery-gateway-1 |   File "/usr/local/lib/python3.7/site-packages/botocore/args.py", line 108, in get_client_args
refinery-refinery-gateway-1 |     proxies_config=new_config.proxies_config)
refinery-refinery-gateway-1 |   File "/usr/local/lib/python3.7/site-packages/botocore/endpoint.py", line 335, in create_endpoint
refinery-refinery-gateway-1 |     raise ValueError("Invalid endpoint: %s" % endpoint_url)
refinery-refinery-gateway-1 | graphql.error.located_error.GraphQLLocatedError: Invalid endpoint: http:// =:7053

I have tried installing it via pip and directly from the repo. I have also tried different browsers.
Best,
Leo

Hi @leugh, thanks for trying the self-hosted version. It looks like the Minio URL is erroneous, there should be some valid endpoint (which you can also see in the error message graphql.error.located_error.GraphQLLocatedError: Invalid endpoint: http:// =:7053). We will look into this and get back to you :)

Hi @leugh, it looks like the resolving of your IPv4 Address is not working as expected. For Windows Users, we make use of the ipconfig command. Could you maybe execute ipconfig in your terminal and send me the output here or to my Mail<EMAIL_ADDRESS>so I can look into wheter it differs from what we expect?

@SirDegraf I have sent you the output via e-mail as I am unsure if it contains confidential information that I shouldn’t post publicly. Thanks for your help!

@leugh thank you very much for helping us improve our tool. Unfortunately, the mail was not delivered to my address<EMAIL_ADDRESS>Could you send it again to<EMAIL_ADDRESS>

@leugh thank you very much for helping us improve our tool. Unfortunately, the mail was not delivered to my address<EMAIL_ADDRESS>Could you send it again to<EMAIL_ADDRESS>
Done - hope it came through now.

That was it - perfect!
Many thanks!

Hi everyone. I'm afraid I'm experiencing the same error: once refinery is launched, in the GUI, while creating a new project, the Upload file functionality is disabled. I'm not sure if this is the same problem as leugh, since I'm working on a Mac and the IP adress seems to be correctly gathered.
Any thoughts on this?. Thanks in advance


Change 'most' to 'almost'

@charlchad, thanks for your contribution! Could you sign our contributor's agreement as explained above? Once that's done we can go ahead and merge this.


Analyze and Optimize Production Build Size

Review the production build size to identify opportunities for optimization. Implement strategies like code minification and component atomization to reduce size and improve performance
Tasks:

[ ] Check the production build size, gather details, and Identify large dependencies or components contributing to the build size.
[ ] Enable code minification and other modifications in the code and build process to reduce size

Acceptance Criteria:

[ ] A detailed analysis of the production build size
[ ] Build size is reduced without breaking functionality.
[ ] Large components are atomized where applicable, improving reusability.

I was looking into this and found that the production build size 34.7MB which was already minified. We can further investigate after the first release to reduce the size.
@Biplob14 Bhai

@shuaibq3 vai, should we keep the ticket for now in our backlog so that we can add our future improvement or any other optimization is necessary for our first release?


[Feature] Optionally validate the link anchor or ignore using line number as anchor

Description

GitHub markdown supports using line length as the anchor, for example:
[file](index.md#L7)

I don't want the linter to throw error on this.
Describe the solution you'd like

I don't know if there is a way to optionally turn on the anchor validation for a specific line, it seems a bit complex to implement.
Instead maybe just hardcode in the plugin to ignore that?
Describe alternatives you've considered

Hey! @zinizhu
Thanks for opening this issue.
I think that's a valid use case, if effectively GitHub supports line length in # fragment.
Could you please verify that MD051 supports this use case, if having a link that refers directly to a line number in its own file (e.g: [file](#L7)). If the built-in rule doesn't support this use case, it would also be a feature to add there.

I don't know if there is a way to optionally turn on the anchor validation for a specific line, it seems a bit complex to implement.
Instead maybe just hardcode in the plugin to ignore that?

I think, we can do better than simply ignoring, and it can still stays simple. Should we validate that the line exists? In your example ([file](index.md#L7)), we should check that index.md should have at least 8 lines. If yes, then good, the custom rule should effectively not throw an error, but if index.md has for example 5 lines, it will "throw" an error saying that line 7 doesn't exist.
What do you think? :smile:
Would you mind opening a PR to implement this feature?
If not, will try to implement it whenever I have time. :+1:

Thanks for the quick response! I just verified that MD051 does not support this use case. It throws an error if I use line number  as the anchor.
I think what you proposed can work well! Worth to note that it is possible to have a header in the same form of the line number, e.g. a header ## L7

@theoludwig

I think, we can do better than simply ignoring, and it can still stays simple. Should we validate that the line exists?

Why won't to start with something that will mitigate the issue and improve over time?

@electriquo I agree, havent't said the contrary. However issues are there to discuss any potential ideas to improve the library. Linters are there to catch human mistakes, as much as a machine can, of course sometimes the linter is wrong, and is detecting a mistake, which is in fact is not.
Only ignoring line number fragments (e.g: #L7), or still have one more check to see if it's valid with the number of lines in a file, is not so much "harder" to do in the implementation (only 1 more if and test case), and it brings values by still catching possible mistakes (e.g: referring to line 7 #L7 in a empty file), so it makes sense to do it at the same time.

Anyway, this use case is now supported in the latest version (v2.3.0), please let me know if it works for you. And please, feel free to open any new issues, if you have new feature requests or bug you've encountered, thanks! :smile:
(I will try whenever I have time, to open a PR to markdownlint to also support this use case there, for the MD051 rule.)

Thank you for supporting this in such a short span! @theoludwig


Server: web interface

Web interface to show user relevant information during acquisition

https://github.com/vinta/awesome-python might hold useful inspiration for templating engines or something even higher level to use to generate server pages

We have a basic view now. Can create further tickets for specific ideas


aspath-regex Juniper

Hi,
I cannot use regular expressions or any other form of query in "BGP AS Path", using Juniper.
I scanned the code and couldn't find where I can adjust it to accept expressions like ". * 1234 +".
The hyperglass accepts only the expressions contained in the help (ex: _65000 $)
Model: mx204
Junos: 18.1R3-S7.1

Hello!
Before I get too far into troubleshooting, have you tried setting this parameter? i.e., the config would look something like this:
[features.bgp_aspath.regex]
mode = 'asplain'
asplain = '^\.\*\s\d+\s\+$'

The above pattern matches your example of . * 1234 + but might need adjusting depending on all the patterns you might want to allow.
Anyway, have you tried this and are saying it does work?

Hello,
I already tried yes, it doesn't work, to return (. * 1234 + is an invalid AS Path).
The way it worked was by not adding parameters to the asplain, but there is no validation :/
[features.bgp_aspath.regex]
mode = "asplain"
asplain = ""

I believe in this case the single quotes are actually required. Per the TOML docs, that's how they handle string literals (similar to bash), which would be required for such a string. I don't have a Juniper device quickly accessible to test with, would you be able to see if single quotes fixes this? If not I'll see what I can rustle up.
Thanks!
-Matt

Hi,
I tried with single quotes, but validation does not allow the use of regular expressions. If the asplain becomes expressionless and has double quotes (asplain = ""), it will work and allow any instructions.
I repeated the tests with single and double quotes, it had no effect.

Hello,
I believe I've got this one figured out. It's two things:
1: The pattern I used above ('^\.\*\s\d+\s\+$') produced the same result for me. However, I changed it to '^\.\* \d+\+$' and hyperglass accepted it.
2: However, the produced result was still an invalid juniper aspath query. This is because the default commands for juniper do not wrap {target} in quotes as JunOS requires. For example, the current default is:
[[juniper]]
[juniper.dual]
bgp_aspath = "show route protocol bgp aspath-regex {target}"

Which results in the command show route protocol bgp aspath-regex .* 1234+ being sent to the router, which fails. After setting the commands in commands.toml to:
[[juniper]]
[juniper.dual]
bgp_aspath = 'show route protocol bgp aspath-regex "{target}"'

I'm able to successfully query the router with this pattern. I'm going to push a quick change to the default commands which should resolve this.
Thanks!


Publishing service state via API sends incorrect note string

Method Agent.UpdateTTL has parameter note which value gets encoded via Uri.EscapeDataString(note) before adding to web request parameters dictionary. It is incorrect because in method ConsulRequest.BuildConsulUri all uri parameter values gets encoded via Uri.EscapeDataString. So when we publish some note with service state, its value gets encoded 2 times.
Correct standard service check (proves that it is not consul core bug):

Incorrect service check:

I can send PR with bug fix and tests.

Thanks for finding the bug and submitting this issue! I'm traveling right now so my ability to fix this quickly is limited, but I'd be happy to review and accept your PR. Please send the PR against the develop branch rather than master.

This should be resolved and will be available in package version <IP_ADDRESS> and onwards.


added pd as namespace

[x ] closes https://github.com/pydata/pandas/pull/12268#discussion_r55924987

This is the msg:
more consistent with code in the rest of the document
added more namespace
Generally, also numpy's randn should used as
np.random.randn
isolated namespace changes
Note:
I hope I got the rebase & merge right.

@dacoex no, @sinhrks is asking if you can make that change. should be straightforward.

Ah, OK. will do.

pls build the docs. This makes most things actually fail as there are lots of additional imports that are needed (or pd.) pre-pended

@dacoex can you update

Sorry, I'd been busy with some other items off the coding domain.
What shall I update?
Reference:
https://github.com/pydata/pandas/pull/12608#issuecomment-204411671

can you rebase and update

can you rebase / update?


Installation instructions not clear

I found several websites where Linux Dash was explained as easy to install tool. Copy and go to the folder and fine.. but thats not working for me. All graphs are empty and the JS error console says:
TypeError: Cannot convert undefined or null to object
    at Function.keys (native)
    at http://www.example.com/admin/monitor/js/linuxDash.js:395:40
    at http://www.example.com/admin/monitor/js/linuxDash.js:60:20
    at http://www.example.com/admin/monitor/js/angular.min.js:111:182
    at k.$get.k.$eval (http://www.example.com/admin/monitor/js/angular.min.js:125:40)
    at k.$get.k.$digest (http://www.example.com/admin/monitor/js/angular.min.js:122:127)
    at k.$get.k.$apply (http://www.example.com/admin/monitor/js/angular.min.js:125:307)
    at m (http://www.example.com/admin/monitor/js/angular.min.js:80:455)
    at N (http://www.example.com/admin/monitor/js/angular.min.js:85:32)
    at XMLHttpRequest.w.onload (http://www.example.com/admin/monitor/js/angular.min.js:86:69)
14angular.min.js:101 TypeError: Cannot read property '1_min_avg' of undefined
    at Object.scope.loadMetrics.generate (http://www.example.com/admin/monitor/js/modules.js:102:53)
    at http://www.example.com/admin/monitor/js/linuxDash.js:425:48
    at Array.forEach (native)
    at http://www.example.com/admin/monitor/js/linuxDash.js:424:31
    at http://www.example.com/admin/monitor/js/linuxDash.js:60:20
    at http://www.example.com/admin/monitor/js/angular.min.js:111:182
    at k.$get.k.$eval (http://www.example.com/admin/monitor/js/angular.min.js:125:40)
    at k.$get.k.$digest (http://www.example.com/admin/monitor/js/angular.min.js:122:127)
    at k.$get.k.$apply (http://www.example.com/admin/monitor/js/angular.min.js:125:307)
    at m (http://www.example.com/admin/monitor/js/angular.min.js:80:455)
I'm using PHP, Debian and Apache. I'm not a root user, but I'm able to use exec() etc. But I don't know if all necessary linux commands are available.
I tried to load http://www.example.com/admin/monitor/server/?module=load_avg but it displayed an empty page. I looked into the /server/index.php and tried the following through Putty:
example@example:~$ load_avg
-bash: load_avg: command not found
example@example:~$ modules/shell_files/load_avg
-bash: modules/shell_files/load_avg: No such file or directory
example@example:~$ cd /
example@example:/$ dir
bin   etc         lib         media  proc  sbin     sys  var
boot  home        lib64       mnt    root  selinux  tmp  vmlinuz
dev   initrd.img  lost+found  opt    run   srv      usr
example@example:/$
Does it mean the necessary command "load_avg" is not available? If yes, why does Linux Dash not check if those commands are available. I miss a "is shell_exec()"-available check as well. Its more clear for the user.

I will try to address your concerns individually.

But I don't know if all necessary linux commands are available.

Linux Dash always assumes a that only bare Linux commands are available and try to use them. Unless you have gone out of your way to disable or remove a package, this should not be the concern. If a specific command was unavailable, it would be easy to debug as it would show up as the server response when PHP calls the bash file.

Does it mean the necessary command "load_avg" is not available. I miss a "is shell_exec()"-available check as well. Its more clear for the user.

No. What you are referring to is the name of the bash file which looks at '/proc/loadavg' to get system stats about average CPU load. This is a Linux file which allows the system to show current load_avg data. So, all Linux Dash is doing is reading that file out. Similar low-level methods of gathering the data are used for most of the data from the Kernel. Unless something is seriously off about your Linux installation, you'll have a '/proc/laodavg' file.

why does Linux Dash not check if those commands are available

Linux Dash was built by a community of smart people. There is probably a good reason for what the code is doing and what is is not. That being said, if you believe there is a better way to write it, I encourage you to submit a Pull Request. I really mean it, please submit code if you think it can be done better.

I tried to load http://www.example.com/admin/monitor/server/?module=load_avg but it displayed an empty page.

This can be one of a numerous issues with your installation. Support questions are welcomed and addressed by the community on the Linux Dash Gitter.

"If a specific command was unavailable, it would be easy to debug as it would show up as the server response when PHP calls the bash file."
I know how to check that because I'm a developer, but a general user will only see a never ending loading dashboard and thinks "hmm linux dash seems to be buggy".
I suggest the following:
1.) build in a check if necessary PHP shell functions are available
2.) replace the shell call on "modules/shell_files/load_avg" by http://php.net/manual/de/function.sys-getloadavg.php
3.) if the api returns an empty result, javascript should not abort because of an error, it should display in the specific monitor an error message instead. By that the monitor will not be disrupted if one API call fails because of a temporary internet connection problem, too.
P.S. the API returns an empty message because my user is not allowed to access "modules/shell_files/load_avg". This is a not changeable limitation of my hosting company.
Thank you for your invitation to submit a code, but I do not have enough spare time at the moment.


Mask IP address on demand

It changes the last octet of the IP address to zero. In default It will not modify the IP address.
Configuration file was extended with the following line:
"masked_ip": false|true,

@soobrosa please take a look at this PR.

LGTM!


Multi target support

:warning: depends on https://github.com/FWeinb/metalsmith-watch/pull/45 :warning:
Description
Depending on the plugins used with metalsmith, sometimes, there are files or folders that always need to be included in the rebuild, whatever the number or the nature of the files to rebuild.
This PR adds the possibility to use arrays of rebuild patterns instead of just one target.
Because of why that feature is needed, it was no longer possible to trigger separate builds for changed files and for changed patterns. The code has been slightly refactored so that one unique build is triggered each time a change is detected, making no difference if a single file or multiple patterns have to be rebuilt.
This means that this slight refactor has been made:

the buildFiles function has been deleted, and the async dependency has been uninstalled as it is no longer needed
pattern/file detection has been moved outside the dynamic update function and into a dedicated function, to make the code clearer/with a better separation of concerns

A unit test has been added to test this new feature.
New feature usage
{
  // everytime a source file changes, the source file itself is rebuilt, along with
  // all files in the "js" folder of the metalsmith's source directory
  "${source}/**/*": [true, "js/**/*"]
}

As the example above demonstrates, the true boolean keyword becomes out of place. This PR solves that issue by adding a new ${self} keyword, acting exactly as the true boolean value.
The README documentation has been updated accordingly. The new ${self} keyword is documented as the preferred way to configure the changed file itself in the replacement patterns, as it seems more consistent with the rest of the watcher's API, but true can still be used (and it still is documented)
Use case
The metalsmith-uglify plugin can be used to create a bundled JS module. If a options.files argument is provided to it, then an exception is thrown whenever a build is triggered and one of the configured file is not provided to it.
So, when using this plugin, metalsmith-watch should be able to trigger rebuilds with the necessary files alongwith the changed ones.
Configuration example, using this  PR's new feature:
metalsmith
  .use(uglify({
    concat: {
      file: 'bundle.min.js',
      root: 'assets/js'
    },
    // we need to force the order of the files to bundle
    files: [
      'assets/js/libs/jquery.min.js',
      'assets/js/libs/algolia.js',
      'assets/js/libs/prism.js',
      'assets/js/libs/select2.js',
      'assets/js/algolia-search.js',
      'assets/js/languageSelector.js',
      'assets/js/versionSelector.js',
      'assets/js/scrollTo.js',
      'assets/js/drawer.js',
      'assets/js/app.js'
    ],
    removeOriginal: false
  }
  .use(watch({
    paths: {
      '${source}/assets/**/*': '**/*',
      '${source}/**/*.md': ['assets/**/*', '${self}'],
      '${source}/templates/**/*': '**/*'
    },
    livereload: true
  })

Issue solved
This PR solves https://github.com/FWeinb/metalsmith-watch/pull/37

It's 2023. Time to remove that PR from my watch list.


KB Import / Export

Enhancement request:
It would be nice to support importing and exporting the Knowledge Base (KB).
Rationale / Use case:
The use case here is for new translators joining an existing translation effort. By bein able to pre-populate the KB on the phone of a new translator, it would allow them to be up to speed, and would also cut down on inconsistent translations between users.

KB import/export complete. Note that AIM now supports the import / export of both Adapt It's knowledge base as well as the translation memory standard TMX (v. 1.4). The latter is not meant for "round-tripping" data however, as there are many items in the TMX spec that are not used by Adapt It Mobile (and the standard supports several languages, not just a source-target pair).


[UNR-2908] Update CI command for Schema generation

Using GenerateSchemaAndSnapshots has been deperacted.

Maybe schema first? It doesn't really matter now, but always seems weird to generate snapshots first.

It does make sense. Might become an invalid workflow eventually.


opt let DataType toSql same with legacy planner

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


Cannot convert a file opened from a UNC path

If a file is opened from a UNC path, the plug-in doesn't work. No error, just no hex dump. Opening the same file from a local path works fine.

This works fine for me on Windows VS Code 1.10.1.
Please reopen if you have more details.


Conda error?

Hi ya'll,
I'm stuck at the create_gvcf_intervals and create_db_intervals step. I have attached the log file and the slurm log file. Looks like an issue with something in a conda environment? I'm not sure how to best proceed, but my initial thought is to re-create my snparcher environment.
Thank you for your time,
Austin
335302.log
log.txt

Hm, this is a new one to me. Looks like some sort of python path issue? I think recreating envs is a good place to start.

No such luck. I re-created the snparcher environment with
mamba create -c conda-forge -c bioconda -n snparcher "snakemake>=8" "python==3.11.4"
and receive the same error messages. Unsure how to proceed - any suggestions?
Thank you in advance!

Hi Austin,
What OS are you using?
Also, does it help if you build the snparcher environment with python 3.10?

Hi Tim,
Our university HPC has the RedHat Enterprise Linux 8 Operating System. I tried to build the snparcher with python 3.10 but then get a chain of confilcts:
Could not solve for environment specs
The following packages are incompatible
├─ python 3.10  is requested and can be installed;
└─ snakemake >=8  is not installable because there are no viable options
├─ snakemake [8.0.0|8.0.1|...|8.9.0] would require
│  └─ snakemake-minimal [8.0.0.* |8.0.1.* |...|8.9.0.* ], which requires
│     ├─ python >=3.11,<3.13  but there are no viable options
│     │  ├─ python [3.11.0|3.11.1|...|3.12.6] conflicts with any installable versions previously reported;
│     │  └─ python [3.12.0rc3|3.13.0rc1|3.13.0rc2] would require
│     │     └─ _python_rc, which does not exist (perhaps a missing channel);
│     └─ snakemake-interface-report-plugins >=1.0.0,<2.0.0 , which requires
│        └─ python >=3.11.0,<4.0.0  but there are no viable options
│           ├─ python [3.11.0|3.11.1|...|3.12.6] conflicts with any installable versions previously reported;
│           └─ python [3.12.0rc3|3.13.0rc1|3.13.0rc2], which cannot be installed (as previously explained);
└─ snakemake 8.11.2 would require
└─ snakemake-minimal 8.11.2.* , which does not exist (perhaps a missing channel).
Can snparcher use older versions of snakemake..?
-Austin

Ah, right, forgot about the snakemake 8 issue. Hmm.
Did you remove the snakemake-generated environments when you rebuilt the snparcher environment? If there is anything in ddnA/work/achipp1/Sulawesi_phylogeny/snpArcher-test/Sulawesi_setup/project_runFULL/.snakemake/conda/ it might still be causing problems.

No such luck. I re-created the snparcher environment with
mamba create -c conda-forge -c bioconda -n snparcher "snakemake>=8" "python==3.11.4"
and receive the same error messages. Unsure how to proceed - any suggestions?
Thank you in advance!

If you're getting error messages trying to create this environment, then I suspect something is funky with your conda and/or python installs. Perhaps try reinstalling conda?

Hi @cademirch,
That was exactly what I had to do - still not sure what the underlying issue was, but a fresh conda install has things working again.
Thank you!
Austin


Backlinks and Ref includes

Describe the bug
Reference Includes are not listed in the Backlinks Pane.
To Reproduce
-Create 2 Notes:
- test
- test2

Put a Ref include of test2 into test
Open test2 and open the backlink pane
Currently it is empty

Expected behavior
The Ref include should be listed under Backlinks since it is a form of a link.
Screenshots

Desktop (please complete the following information):

VSCode version: 1.52.1
Dendron version: 0.20.0

Additional context
Clean and fresh initialized vault

@flammehawk - I know this is a super old issue so sorry for the late response but I can no longer repro this. Closing. Please reopen if you think there's something else here.


AsyncContextThread needs Run methods

From @StephenCleary on October 4, 2016 17:7
http://blog.stephencleary.com/2012/02/async-console-programs.html#comment-2932583857
AsyncContextThread.Context.Factory no longer shows up in IntelliSense, so it's hard to find.
Copied from original issue: StephenClearyArchive/AsyncEx.Context#3

AsyncContextThread has a public Factory, which removes the need for explicit Run methods.


[SPARK-41922][CONNECT][PYTHON] Implement DataFrame.semanticHash

What changes were proposed in this pull request?
Implement DataFrame.semanticHash
Why are the changes needed?
api coverage
Does this PR introduce any user-facing change?
yes
How was this patch tested?
new Unit tests

cc: @HyukjinKwon @zhengruifeng

@techaddict many thanks for working on it.
https://github.com/apache/spark/pull/39429#issuecomment-1374336839
but I guess we will not add the two functions. maybe we should update the error message and/or the related comments.

Oh yeah. Thanks Ruifeng for pointing it out .

@zhengruifeng Closing these and will create a different PR with updated comments


Use ignore file

ESLint allows to use ignore file with list of globs similar to .gitignore or .npmignore, it would be very useful if lint-staged can also take this file in config.
Currently in the project I have to duplicate contents of this file in lint-staged config.

We have an ignore option and also eslint when running looks for its ignore file. Why would you need a separate file?

Like I said, lint staged has an option. Not a file. We’d like to skip all hooks for things we don’t lint.

I see. Feel free to implement this!

Just as a note, I think the semantic of the ignore file is a bit off in the context of lint-staged since it's a runner of different tools and so I think there should be those tool's responsibility to ignore patterns since they may vary.

Partially agree, but, ignore file format is pretty standard, so I think it does make sense to support it here too.

@okonet removing ignore option is very bad DX, developers just want ignore file, now we need write function(s), it is very uncomfortable and no examples in README how better solve this, when something was removed it is good practice put example how solve previous behavior

@iiroj spent last 10 days crafting the PR that closed about 10-15 issues and I spent hours doing code reviews. We're sorry that your use case become more complicated and we'd appreciate any help that would improve the DX.

when something was removed it is good practice put example how solve previous behavior

We added some examples. Again, if your example is missing, you're welcome to help us with a PR that adds a better or missing example.
Starting from now I'm marking any unrelated and not helpful comments as off-topic to keep issues related to the library.


[Tooltip] Touch event not working

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
The touch event is not causing the tooltip to show.
Expected behavior 🤔
Show the tooltip when the tooltip element is touched.
Steps to reproduce 🕹
Steps:

Go to https://mui.com/components/tooltips/#triggers on an iPhone
Press "hover or touch" button
Nothing.
Press "click" button
Tooltip shows

Context 🔦
The tooltip should show when the tooltip element is touched on a mobile device. It appears that the touch listener is not working.
Your environment 🌎
Safari 15.1 on iOS 15.1

Whelp, looks like it does work just needs to be long-pressed (default 700ms) --- perhaps this should be mentioned in the docs?


fix cli http_interface_port consistency

Seems this cli help text is incorrect and code actually defaults to 8999 at:
https://github.com/AmbientRun/Ambient/blob/256172a79d203f0669dce6bf5c9a7fab0cbab5d1/app/src/server/mod.rs#L303

Nice catch, thanks.


Add Versionist & npm version scripts for automatic versioning

With this, the following will run versionist, update the CHANGELOG.md, bump the package.json version, commit & tag:
npm run bump patch

Example changelog update diff:
+## v9.0.1 - 2017-03-01
+
+### Misc
+
+- **versionist:** Add changelog template
+- **versionist:** Add `getIncrementLevelFromCommit()`
+- **package:** Add "bump" script
+- **versionist:** Add versionist.conf.js
+- **package:** Add versionist & postversion hook
+- **editorconfig:** Disable trimming whitespace in Markdown (#89)
+- Update dependencies (#88)
+- Fix ENOSPC / EINVAL caused by chunk padding (#84)
+- **package:** Update dependencies (#82)
+- Update ImageStreamPosition unit tests (#81)
+

Looks good to me. I'll invoke @hedss and @lekkas to also take a look, since they are more involved with Versionist than I am.

Looks good! But (there's always a but, isn't there?) I'd like @lekkas to comment, as we're diverging here from the 'usual process' documented in our commit/PR guidelines (only in-so-far as we're not using the same tags).
As far as the use of VersionBot is concerned, it's not an issue because the added versionist.conf.js will override the default process. However, this has been an ongoing conversation and Kostas does have a very strong opinion on this.

The tagging style changed at 3.0.0 (to non-prefixed with a "v"), not sure why – we can change it back to what the guidelines say.

Agreed that it makes sense (where possible / appropriate) to keep this as similar as possible to the "standard" resin.io versioning / versionist process.

@jhermsmeier @hedss @jviotti the plan is to use the versionbot integration everywhere, but it's not there yet for npm modules. Until then, I'm fine with using versionist locally in projects and we can switch to versionbot later on.
The reason I'm pushing for a single versionist.conf.js managed by the versionbot integration is to keep the changelog and, most importantly, versioning conventions, consistent accross resin.io.


Migration path for open-source vscode users?

According to the Pylance release announcement:

Our long-term plan is to transition our Microsoft Python Language Server users over to Pylance and eventually deprecate and remove the old language server as a supported option.

While this seems reasonable at first, it leaves open-source VS Code users high and dry. Pylance is not open source, it does not run in open source distributions of VS Code, and it does not seem like it's expected to be open-sourced any time soon.
What are open-source VS Code users to do?
While I'd certainly like to see Pylance open sourced, I'd hope MSFT would at least support the Microsoft Python Language Server until a true alternative was available.

Hey @JacobHenner!
We have no plans to open-source Pylance at this time. You are still able to use the Microsoft Python Language Server or Jedi as open-source options as a language server in VSCode. Alternatively, you might also find that installing Pyright suits your needs. It's open-source and includes a large subset of Pylance functionality.


Matplotlib z-order problem with legends

Fixed in https://github.com/ioam/holoviews/pull/434 by setting a very high zorder value. The legend code can still do with a cleanup but I'll close for now.


Darwin framework: add replacement subscribe method that includes event report

Problem

Darwin framework CHIPDevice was missing event subscription. This PR aims to add it
Fixes #16691

Change overview

zapt templates to generate Obj-C objects corresponding to C++ event structs
zapt template to populate these objects from events TLVReader
new CHIPDevice subscribeWithQueue method with eventReporterHandler and logic to hook up the handler with the callback mechanism

Testing
Work-in-progress - will update testing details later.

 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.

Tested this with chip-tool-darwin and locally modified Commands.h. I'll make a separate change to add a test to chip-tool-darwin.

Fast-tracking platform-specific code.


Improve fastRP + kNN notebook example

Adapt more of the content from the example in the GDS manual, among other things.
Thank you for your contribution to the Graph Data Science Client project.

Before submitting this PR, please read Contributing to the Neo4j Ecosystem.
Make sure:

[x] You signed the Neo4j CLA (Contributor License Agreement) so that we are allowed to ship your code in our library
[x] Your contribution is covered by tests

@nvitucci Let us know if you have thoughts on this :)

Added a few comments. I'll continue to review later today.

Thanks for the review. I'll merge it now, but we can always add change it later :)

Good cleanup.
I am wondering a bit if here we dont want to include result cells as we describe the expected results in more detail already. (the explanation will be out of date anyway if something changes, so the result itself cant get more outdated)

Thanks for the review!
I don't think including the result will improve things, since if people run and get different results they will probably be confused anyway. And I don't like including results haha, especially if we don't typically do it in other notebooks


HB-7307: initialize Core SDK instead of Mediation SDK

I will make a PR to merge into https://github.com/ChartBoost/ios-helium-sdk/pull/1721 if this is merged first.

@CB-HaoxinLi do you mind doing the change on my monorepo branch directly?


Just thanking you for the olny fix that worked for me!

My main display takes 10-15s to wake up, meanwhile the second monitor is already wake and windows/nvidea changes the main screen automatically, when finally my main display wakes up, windows changes again, moving all my windows back to the main display

Same here, thanks for this program.  Saved the day.
Asus VG27A is the monitor I added that started with this issue.

Another me too. Nvidia seem to be able to prevent this rearrangement in their driver but Intel not. Tried the usual fecking about with the registry but nothing worked on my 2 x 4k displays until I tried this. Thanks for giving me my life back 🥇

I wanted to thank you too!

Thank you for taming this Gigabyte G27FC P.O.S.   Cheers!

Thank you, this is working for me, too. I have forked the project to increase the limit as I'm running 7x 4K monitors. Waking the monitors up was chaos until now.


add specific ownership for tools/ci folder

What does this PR do?
Change ownership

Motivation
Ownership

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


feat: Group up all dependecies

Signed-off-by: Michal Drla<EMAIL_ADDRESS>Related issues

Type of pull request

[ ] New feature
[ ] Bug fix
[ ] Refactoring
[ ] Feature update
[X] Other

Describe your PR in detail
Updates renovate.json so taht we have less opened PRs from renovate bot

/lgtm


5.2 config doesn't publish

artisan vendor:publish --provider="Themsaid\Langman\LangmanServiceProvider"
Nothing to publish for tag [].

It looks to me that the package isn't installed, can you please double check.

it works fine with me , a fresh install of laravel 5.2
composer.json require
"laravel/framework": "5.2.*",
"themsaid/laravel-langman": "^1.2"

put the provider in config/app.php's providers array
Themsaid\Langman\LangmanServiceProvider::class

then execute artisan command
php artisan vendor:publish --provider="Themsaid\Langman\LangmanServiceProvider"

the result :
Copied File [/vendor/themsaid/laravel-langman/config/langman.php] To [/config/langman.php]
Publishing complete for tag []!


Add Nix as a installation method

This works locally for me. I will be dog-fooding it for a bit. But I think its a nice additional method of setup with minimal work and dependencies. I also use NixOS on one of my PCs so I kind of want this. :)
Description
Nix is a cross-platform package manager. It employs a model in which software packages are each installed into unique directories with immutable contents. These directory names correspond to cryptographic hashes that take into account all dependencies of a package, including other packages managed by Nix.
Type of change

New feature (non-breaking change which adds functionality)

Nix
If you have Nix installed you can use the flake.nix configuration file located at the root of the project to build and develop within an environment without needing to install rvm, postgresql or other tools separately.
The environment also uses the gemset.nix file to automatically download and install all the gems necessary to get the server up and running. This means you will not need run bundle exec or any bundle commands.
INSTRUCTIONS:

Install Nix
Add the following to ~/.config/nix/nix.conf or /etc/nix/nix.conf:

    experimental-features = nix-command flakes

cd into human-essentials
Copy .env.example to .env and set correct values
nix develop and wait for the packages to be downloaded and the environment to be built
If the Gemfile changes run update-deps to update gemset.nix

The database will be created when running nix develop for the first time. If you did not set up your .env and database creating failed you can run setup-db or use rails db: commands.
This will run on Linux and macOS.

My main concern with this (as with the Docker setup) is that each of these that we add in adds additional files to the base directory (which can be overwhelming to new devs) and gives us the illusion that we are officially supporting these installation methods. So if we change the Ruby version, gems, etc. we would have to update these files - but you're the only one who knows how to do that. And if we don't do that, we have an installation method that becomes outdated and loses its value.
I wonder if it would make more sense to have this available in the Wiki or docs rather than living in the codebase itself.

(nods) Getting good advice on how to set things up if you aren't running our core supported environment is definitely something we want,  and/but D's right -- if we can't sustain it, it'll be counter-productive in the long run.
If we could get a write-up into the wiki about this, though, with a pointer from the read me, and a caveat as to the date it was written -- that would be a goodness!

This is gonna be kind of a long answer but I want to address all the point since they are definitely valid.
General Thoughts
Overall, I can't disagree with the point that any feature you add becomes a support burden. Which is especially concerning when it's a feature you don't have the bandwidth to learn about.
That said. I think the impact of any feature like this depends on size of surface area of it's interface.
This is a super advanced form of setup that few people will use, so even if it goes out of date the impact will be low. Furthermore, pretty much anyone setting up the repo with Nix probably has the skills to troubleshoot issues.
I feel like as long as this is kept away from the casual user it really isn't an issue. Call it unofficial install methods or something. Maybe don't even link to it off the main readme.
Why not just give it a shot? Worst case scenario if it gets stale you can just pull it later (I don't think this will be an issue at least until node18 support ends in 2025). All this really needs to be is a few lines added to Gemfile.lock and the flake.nix. At that point any developer interested in setting it up Nix will have no issues doing it.
Specific Responses
Base Dir pollution

My main concern with this (as with the Docker setup) is that each of these that we add in adds additional files to the base directory (which can be overwhelming to new devs)

The only file that really needs to be added to the base directory is flake.nix. The rest can go elsewhere and stuff like gemset.nix and flake.nix can be added to .gitignore.
Also not trying to challenge the statement but out of curious is it really that common for new people to be confused by the stuff in the main dir? I feel like there is so much config stuff in there already that 1 file more or less won't affect much.
Illusion of Support

gives us the illusion that we are officially supporting these installation methods

What if we either don't include a documentation page for it or mark it as an unofficial install method?
Docker Concerns

(as with Docker)

I actually think there is a massive difference between this and Docker. Nix requires much less compared to the Docker setup because it doesn't have to deal with nearly as many networking shenanigans. If you compare this PR to the docker one, this one doesn't change any of the specs, configs or database.yml.
Pretty much all the changes are sequestered to flake.nix, so a developer doesn't need to be concerned about modifying some systems test that has a download component and breaking compatibility with docker.
Versioning

So if we change the Ruby version, gems, etc. we would have to update these files

This Nix setup uses Gemfile.lock as its source of truth so it would auto-update.
Why not throw this in the wiki somewhere?

I wonder if it would make more sense to have this available in the Wiki or docs rather than living in the codebase itself.

Technically, this could be done. It does create a large amount of friction because nix wants all files to be in the Git index before it will use them. You end up with this really annoying flow of staging the nix stuff then un-staging it for every commit.

Just cherry-picking a couple of comments:

Worst case scenario if it gets stale you can just pull it later

The point is we aren't going to know if it's stale or not, and we likely wouldn't think of pulling it.

I feel like there is so much config stuff in there already that 1 file more or less won't affect much.

And if you say that line 15 times, you end up with 15 more files 😁 The point is that if we have Docker-related files, Nix-related files and setup files that use neither, you get more options but also more confusion. Anything that lives in the repo (regardless of how "official" it is) is findable and hence adds to the cognitive load of figuring out how to run the app. And if we don't document it, people will look at it and have no idea why it's there or when/if it's safe to get rid of.
Just doing some googling... is there no way to get out of the requirement to have the files in the index? Not 100% sure what this is, but would it help? https://github.com/hercules-ci/gitignore.nix

Just doing some googling... is there no way to get out of the requirement to have the files in the index? Not 100% sure what this is, but would it help? https://github.com/hercules-ci/gitignore.nix

Nah. Unfortunately this does the opposite, makes the flake look at less files not more.

I feel like there is so much config stuff in there already that 1 file more or less won't affect much.

And if you say that line 15 times, you end up with 15 more files 😁 The point is that if we have Docker-related files, Nix-related files and setup files that use neither, you get more options but also more confusion. Anything that lives in the repo (regardless of how "official" it is) is findable and hence adds to the cognitive load of figuring out how to run the app.

It's kinda hard to get phrasing right over text so I was probably unclear. My original comment was more of an aside where I was wondering how often that situation occurs. Like how often does someone say something like: "Hey why is there a Procfile and a Profile.dev"?

And if we don't document it, people will look at it and have no idea why it's there or when/if it's safe to get rid of.

That's a very valid point.

I don't think we've got any statistics, obviously. But I think the important thing to keep in mind is that HE is a very newbie-centric repo - many if not most of our contributors are very junior. Hence why I would err on the side of keeping things clean and simplified rather than giving us more options that would largely benefit more senior developers.
Nix being so closely tied to the git repo seems like a very odd decision... wonder if there's some git magic we can do to make your own workflow not quite so painful.

Nix being so closely tied to the git repo seems like a very odd decision... wonder if there's some git magic we can do to make your own workflow not quite so painful.

That is a valid point. I believe that is mainly tied to Nix flakes vs derivations, flakes being newer, more performant but technically unstable. I should explore doing this as a derivation, maybe the workflow becomes easier.
2 followup questions:

How about merging the Gemfile.lock and SCSS changes to enable someone using a flake to use the repo?
What would an alternative setup method need to look like for you to want to add it to the project?

I'm good with that.
That's an excellent question. I think if we can move the relevant files into a subdirectory, I'd feel better about that. I'd still think carefully about the maintenance load and see if there are ways to reduce that. Probably my ideal would be to provide information on how to do the setup without checking those files into git so we're not "on the hook" for them.

I want to test the setup with nix, since it can be beneficial for me in the long run. Will try to do it in 2-3 months.
I think devs with windows os are more prone to set up nix, since it can abstract a bit of the mess when using Linux from wsl.

I want to test the setup with nix, since it can be beneficial for me in the long run. Will try to do it in 2-3 months.
I think devs with windows os are more prone to set up nix, since it can abstract a bit of the mess when using Linux from wsl.

I've never used it with WSL. Only as a Linux os/ package manager. If you go whole hog and use it as an OS there are sooo many foot guns.
I don't think Ruby is necessarily the best environment for it. I also in general think that this project is a bit of a poor choice for nix (this project takes a potential JavaScript dependencies and uses gems to provide them.
I was mainly setting it up for personal use because I have a laptop that wouldn't be able to run it otherwise.
Not trying to discourage you. But just warning you that it makes you want to pull your hair out sometimes. On the other hand, sometimes you're missing a dependency and you literally put one line of code in your config file and everything's fixed.

@elasticspoon is this OK to close for now?


HDDS-1997. Support copy-source-if-(un)modified-since headers for MPU …

…key creation with copy
What changes were proposed in this pull request?

Add the header check of copy-source-if-(un)modified-since.

What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-1997
How was this patch tested?
Unit test.

@elek Could you help to review this PR?

@elek Could you help to review this PR?

@elek Thanks for the comment.
I think I was doing the test with s3api too, but I was testing with Long only. Will update the patch to support String also.
For the error message, I used the error message from AWS, I will add more details in the patch.

@elek Thanks for the comment.
I think I was doing the test with s3api too, but I was testing with Long only. Will update the patch to support String also.
For the error message, I used the error message from AWS, I will add more details in the patch.

I used the error message from AWS,

Yes, I just learned it. It's fine to keep the current message to mimic the behavior of AWS.
Just FYI: You can create command line compatibility test (Test which executes AWS CLI and checks results) with modifying this file:
https://github.com/apache/ozone/blob/master/hadoop-ozone/dist/src/main/smoketest/s3/MultipartUpload.robot
(And executing ./test.sh from compose/ozone folder from the build).
It's more like a good to have, not a must-have (IMHO), but if you are interested, you can check, and create other Jira/patch with improving acceptance tests.

I used the error message from AWS,

Yes, I just learned it. It's fine to keep the current message to mimic the behavior of AWS.
Just FYI: You can create command line compatibility test (Test which executes AWS CLI and checks results) with modifying this file:
https://github.com/apache/ozone/blob/master/hadoop-ozone/dist/src/main/smoketest/s3/MultipartUpload.robot
(And executing ./test.sh from compose/ozone folder from the build).
It's more like a good to have, not a must-have (IMHO), but if you are interested, you can check, and create other Jira/patch with improving acceptance tests.

Sure, thanks for the suggestions.
I'm a little confused here, I have tried different typs of date format with was s3api, like "01-12-2020", "13-01-2020" and Long type timestamp, I found AWS is handling them all well.
I am trying to use parseDate from common-lang3 which can parse date according to a list of format, but seems a little hard to list all possible DateFormat, do you have any suggestions on this?

Sure, thanks for the suggestions.
I'm a little confused here, I have tried different typs of date format with was s3api, like "01-12-2020", "13-01-2020" and Long type timestamp, I found AWS is handling them all well.
I am trying to use parseDate from common-lang3 which can parse date according to a list of format, but seems a little hard to list all possible DateFormat, do you have any suggestions on this?

Fixed the patch to check the date from the header.
Will raise another commit for the robot test. Not familiar with the robot test, need some time to work on it.

Fixed the patch to check the date from the header.
Will raise another commit for the robot test. Not familiar with the robot test, need some time to work on it.

@elek The robot script is updated, could you have a check?

@elek The robot script is updated, could you have a check?

My pleasure.


MathHelper.lerpFromProgress -> map

and clampedLerpFromProgress -> clampedMap.
These functions take five values lerpValue, lerpStart, lerpEnd, start, end and map the lerpValue from the first range (lerpStart..lerpEnd) to the second (start..end). Additionally, clampedLerpFromProgress clamps it to the new range.
lerpFromProgress is a very confusing name for this method and doesn't really describe what it does. Processing has an equivalent method, which they call map, and I think that is much more descriptive. In any case, we should document the method to clarify it.

Also, MathHelper.getLerpProgress(value, from, to) can be considered normalising a number from a range from..to to 0..1. (Processing calls this norm for that reason.)
Though I'm not sure whether renaming it is that useful since you can also think of it as the lerp delta between from and to.

I support this rename. "lerp from progress" is really confusing, and I have to look up the method to see in what order the parameters are each time. map sounds a lot simpler.


vscode window becomes intermitently unscrollable when working on Jupyter Notebooks

We have written the needed data into your clipboard because it was too large to send. Please paste.
Issue Type: Bug
Open a large enough notebook that it can be scrolled and scroll down. The page stops and cannot be scrolled down intermitently. Scrolling up still works but continuing down will not work at all until you wait for a few seconds. Issue repeats all the time.
VS Code version: Code - Insiders 1.64.0-insider (00f1ca47ada2fda8ee1437e17b27af5b4002cecb, 2022-01-11T09:14:06.453Z)
OS version: Darwin arm64 21.2.0
Restricted Mode: No
Remote OS version: Linux x64 5.10.0-10-amd64

System Info

Item
Value

CPUs
Apple M1 Max (10 x 24)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
2, 2, 2

Memory (System)
64.00GB (24.78GB free)

Process Argv
--crash-reporter-id 5d6ed546-7e98-45e4-83fc-3dfcdb8502ec --crash-reporter-id 5d6ed546-7e98-45e4-83fc-3dfcdb8502ec

Screen Reader
no

VM
0%

Item
Value

Remote
SSH: vaderl

OS
Linux x64 5.10.0-10-amd64

CPUs
Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz (8 x 3591)

Memory (System)
31.18GB (23.40GB free)

VM
0%

Extensions (14)

Extension
Author (truncated)
Version

jupyter-keymap
ms-
1.0.0

remote-containers
ms-
0.211.0

remote-ssh
ms-
0.70.0

remote-ssh-edit
ms-
0.70.0

remote-wsl
ms-
0.63.13

vscode-remote-extensionpack
ms-
0.21.0

vim
vsc
1.21.10

viml
Xad
1.0.1

python
ms-
2022.0.1679807046-dev

vscode-pylance
ms-
2022.1.1-pre.1

jupyter
ms-
2022.1.1001614873

jupyter-keymap
ms-
1.0.0

jupyter-renderers
ms-
1.0.3

synthwave-vscode
Rob
0.1.10

(4 theme extensions excluded)

@atticusmatticus can you please share the notebook to help troubleshoot?

Sure, it's happening on this notebook among others: https://github.com/fastai/fastbook/blob/master/10_nlp.ipynb
My local copy of this notebook should be identical but here it is just incase it isn't:
10_nlp.ipynb.zip

@atticusmatticus thanks for your help, this is a really good catch.


Get expiry time for key?

I am using the following ~hack~ code 😉 to get a dump of all keys from our memcached server via telnet:
      keys = []
      memcached =
        Net::Telnet.new('Host' => 'memcached', 'Port' => 11_211, 'Timeout' => 3)

      matches =
        memcached
          .cmd('String' => 'stats items', 'Match' => /^END/)
          .scan(/STAT items:(\d+):number (\d+)/)

      slabs =
        matches.inject([]) do |items, item|
          items << Hash[*%w[id items].zip(item).flatten]
          items
        end

      slabs.each do |slab|
        memcached.cmd(
          'String' => "stats cachedump #{slab['id']} #{slab['items']}",
          'Match' => /^END/
        ) do |c|
          c.scan(/^ITEM (.+?) \[(\d+) b; (\d+) s\]$/).each do |key_data|
            keys << key_data[0]
          end
        end
      end

      slabs.each do |slab|
        memcached.cmd(
          'String' => "stats cachedump #{slab['id']} #{slab['items']}",
          'Match' => /^END/
        ) do |c|
          c
            .scan(/^ITEM (.+?) \[(\d+) b; (\d+) s\]$/)
            .each do |key_data|
            cache_key, bytes, expires_time = key_data
            rows_hash[cache_key] = [
              slab['id'],
              Time.at(expires_time.to_i),
              bytes
            ]
          end
        end
      end

You can see that using stats cachedump I also get the TTL for the key. However, this doesn't seem to be exposed/included in what Dalli::Client.get returns.
Is there a way to get the expiry for a key using this client?
Use case: after/while looking up a user's session in memcached, I'd like to confirm the cache data hasn't expired. Previously we used JWTs and had code like this:
  def decoded_token
    algorithm = 'RS256'
    public_key_path = ENV['JWT_PUB_KEY_PATH']
    public_key_contents = File.read(public_key_path)
    public_key = OpenSSL::PKey::RSA.new(public_key_contents)
    @decoded_token ||=
      JWT.decode(http_token, public_key, true, { algorithm: algorithm })
  end

JWT.decode would validate the exp key in the token was not in the past, thus enforcing JWT TTL.
I suppose this concern is more relevant for JWTs since they're issued once and only once and thus they should have as short an expiry as possible for one's application. In contrast, if using server-side session caching via memcached (what I'm migrating to now), the cache key's TTL seems to be updated on each get operation for that key.
Sorry this ended up turning into a bit of a ramble but - do you have any thoughts? Thanks! 😄

So there's not really a way to do what's being asked (getting the current expiry time for a key).  But I don't really understand the point.  This sentence:
after/while looking up a user's session in memcached, I'd like to confirm the cache data hasn't expired.
seems to be based on a misunderstanding of how this all works.  Specifically:

If you lookup a key, and get a result, by definition the key hasn't expired.
If you want to check if a previously requested key is still in cache, just issue another get for that key.  Then see #1.

A JWT is an entirely different thing than a cache.  The workflow as described above has no relevance for a server-side session caching model.  The JWT is a client side token that can be accessed after expiration.  A server side session is either in cache or is not.

Right, I agree with you - I was just thrown off by memcached reporting expiry times for keys, e.g.:
irb(main):024:0> puts row_format % headings
|      id |                      expires |        bytes | cache_key                                |
=> nil
irb(main):025:0> rows.each { |row| puts row_format % row }
|       2 |    2022-06-12 23:18:53 +0000 |           17 | memc.sess.key.1ncssss2kjafmeb4g1g8uf92ve |
|       2 |    2022-06-12 23:18:36 +0000 |           18 | memc.sess.key.hlqr48serdqoccohdccoo6ikla |
|       2 |    2022-06-12 23:18:05 +0000 |           18 | memc.sess.key.hfgg2q1e403jb1iu9vvpcksl3s |
|       2 |    2022-06-12 23:18:00 +0000 |           18 | memc.sess.key.n2j0jth9cqq0ui5om0t6fi4l1m |
|       2 |    2022-06-12 23:17:53 +0000 |           17 | memc.sess.key.dtl1f8p3149v6f2pjhoehjstl4 |
|       2 |    2022-06-12 23:17:35 +0000 |           18 | memc.sess.key.1jf9sfhr53fopo1vllh9jjbnf2 |
|       2 |    2022-06-12 23:17:04 +0000 |           18 | memc.sess.key.n608hb36eqgdgrdu7chq9jvcjv |
|       2 |    2022-06-12 23:17:00 +0000 |           18 | memc.sess.key.nj6crlchvcfkms5ds39bqgf652 |
|       2 |    2022-06-12 23:16:53 +0000 |           17 | memc.sess.key.vthkcmfplopq942lu0euhjrem2 |
|       2 |    2022-06-12 23:16:34 +0000 |           18 | memc.sess.key.sp1l0lcpc5eo8nlmd61sgjma1h |
|       2 |    2022-06-12 23:16:04 +0000 |           18 | memc.sess.key.hg1apubj11uj7btucvb0eebc5m |
|       2 |    2022-06-12 23:16:01 +0000 |           18 | memc.sess.key.7kione3lvrfdleqodrbjfsqogd |
|       2 |    2022-06-12 23:15:54 +0000 |           17 | memc.sess.key.1v5gjfm3h7u584b0i807k3ijsr |

But as you point out this is simply a different use case/purpose.
Memcached uses this "expiry" timestamp more like a TTL, but also I believe for prioritizing which entries should be cleared first in the case that e.g. storage capacity is reached and it has to start making decisions about what to evict first. See https://github.com/memcached/memcached/wiki/UserInternals#when-are-items-evicted.
In any case, you're right that I don't need to check it since it's the server's job to make sure the cache data is removed when expiry is reached, not the client's job to double check that.

Closing.

Hey @petergoldstein,
First of all, thank you for maintaining the gem.
Let's say, on a hypothetical situation,  that I need to visualize when a key will expire so I can decide whether or not to take action (expire ahead of time, for instance).
What would be a way to retrieve it for a specific key (or for a set of key)?
I'm not a memcached expert at all, but I've found that it can be retrieved with the mg key t command as shown below but I could't find support for it on the gem.
mg key_name t
HD t3575

Are there plans to support meta get commands on the client?
Would you recommend another approach?
Thank you.

@raivil So let me clarify some confusion about memcached first, and then we can discuss the use case.
meta is a communication protocol, like binary.   Dalli has support for use of both the binary (by default) and meta protocols.  See the docs for details.  Using meta or binary is a memcached connection level decision (or from the Dalli perspective a client level decision) and you can't switch between them on a single connection or client.  So the command being presented is just the get command, using the meta protocol, with a TTL flag.
Dalli doesn't support the TTL flag on get, and is unlikely to do so in the near future.  The Dalli get command is designed to have a simple return type - namely the data that's cached under that key - and has no way of returning the TTL (or any of the other meta attributes that you could retrieve) without modifying the signature.
That all said, the use case being presented really doesn't seem to match up with using memcached in its standard use case - as a cache.  It almost sounds like you're trying to use memcached as a database, which is not generally recommended.  In a cache you generally:

Set key/value data (optionally with a TTL)
Retrieve the data by key, being robust against a cache miss.  TTL may be updated on gets for data that's being used (get and touch)
Generally allow the cache to manage deletion of data via TTL or cache space limitations.  You may occasionally flush the server, but it's rare to clean up particular sets of keys.
Data modifications are limited, with some special operations to support metrics tracking type use cases (increment/decrement) and TTL extension (keeping data around even if it hasn't been used recently)

Why is it necessary to "visualize when a key will expire" under this use case?  If the key is known, and the TTL may not be what is desired, touch can be used to set the TTL for that key.  There's no reason to actually get either the data or the current TTL.
And if it's necessary to reduce the TTLs of your existing data, I'd suggest one of the following may be true:

TTLs are being set too long on set or gat.  In this case, just reduce the TTLs, and gat can be used to ensure that frequently used keys are refreshed.
The key strategy doesn't match your use case - keys are being reused for different data when they shouldn't be.  Proper structuring of keys (see Rails caching for examples) can avoid unnecessary key reuse


Where did spike-dasm go?

Hi,
In the previous repository there was a spike-dasm tool.
Is it possible that this was removed in the current one?
Thanks!

Hi @JosseVanDelm,
This is an issue we are currently discussing in https://github.com/pulp-platform/snitch_cluster/pull/32.


Issue with Multiple Rows selected

Combobox isn't working when the checkbox is enabled on datatable.
Not letting the user select the options when multiple rows are selected.

Thanks for finding this. Yeah, it's a limitation here.


"extendable preferred share" is not a recognized financial term

I could not google anything for "extendable preferred share": I literally got zero results! Is it really a thing?
Originally posted by @rivettp in https://github.com/edmcouncil/fibo/pull/1130#discussion_r480406709

Issue SEC-73 is about the representation of the CFI standard in FIBO.  Under preferred shares, in section 6.2.3, under the second attribute (Redemption), you'll find that Extendible is one of the features tracked in the CFI standard.  It applies only to redeemable preferred shares, and since redeemable preferred shares are already a specialized kind of thing, it may be difficult to find any information in a generic search.  We have discussed this in our calls, and our SMEs have agreed that we need to represent this.
Not sure how extensive your search was, but here is a Bloomberg article that was published today that talks about extending the redemption date on preferred shares - https://www.bloomberg.com/press-releases/2019-04-02/neuberger-berman-closed-end-municipal-funds-announce-extension-of-preferred-shares-term-and-partial-redemption.
I recommend that we close this issue with no change.

In the CFI definitions https://sec.report/CFI/EPNEDB I believe it's spelled extendible with an i rather than extendable with an a. So I'd be OK if we had extendible in the synonym.


Add Active Directory authentication option

This works perfectly.
var configuration = {
...
  publishAuth: {
    type: 'active-directory',
    options: {
      url: 'ldap://dc.domain.com',
      baseDN: 'dc=domain,dc=com'
    }
  }
};

var registry = new oc.Registry(configuration);

[ ] When publishing, user should be prompted to insert email and password in the CLI. Email should then be remembered and saved inside compiled package.json - so that we know who published what.
[x] Authentication should happen on the server, so as soon as the user is asked to prompt username and password, they should be sent to the registry together with the publish request. That said, it would be a good idea to force the user to use HTTPS endpoints (at least) when doing the publish operation.
[ ] We need to figure out if and how this would fit for the grunt plugin.

@andyroyle it would be good to have your opinion about this

Awesome :+1:
As far as the grunt plugin goes, I think the simplest first-step is to have the username/password passed on the options to the publish step. If they are present then it shouldn't prompt (basically skipping this method)
Beyond that we can try to support token-based or key-based methods if we want.

https://github.com/andyroyle/oc-auth-ldap


Add an information_schema.role_grants table

Update:
this is now called information_schema.role_authorization_descriptors
The schema of this table is:
| role_name | grantor | grantor_type | grantee | grantee_type | is_grantable |
Connectors can use that to make role grant information available to (admin) users by implementing ConnectorMetadata.listAllRoleGrants, with an option to filter by predicates for optimization.
Currently this is implemented in the Hive Connector only.
grantor and grantor_type are not yet supported and always null. (but it could be added in a separate DR).
Continued from #3232

@kokosing FYI
Note that I have not done the predicate pushdown, yet. This has most of the plumbing. The caching seems to be fairly effective already, though.
presto> select count(*) from information_schema.role_grants,information_schema.role_grants,information_schema.role_grants,information_schema.role_grants,information_schema.role_grants,information_schema.role_grants,information_schema.role_grants,information_schema.role_grants,information_schema.role_grants,information_schema.role_grants,information_schema.role_grants;
   _col0
-----------
 362797056
(1 row)

Query 20200424_023942_00015_7issh, FINISHED, 1 node
Splits: 198 total, 198 done (100.00%)
0:00 [126 rows, 40B] [477 rows/s, 152B/s]

Although I assume there's some other optimization at work. :)
Is there a place where the information_schema is documented? (I could not find any)

For the predicate push down I can think of three scenarios:

point values for role_name - WHERE role_name = 'x', or WHERE role_name in (...), etc.
arbitrary predicate on role_name - WHERE role_name LIKE ..., etc.
3a. point values for grantee and grantee_type - WHERE grantee = 'x' AND grantee_type = 'USER', or WHERE (grantee, grantee_type) IN (('x', 'USER', 'y', 'ROLE', ...)
3b. point values for grantee (name) only.

For (1) I'd loop over the passed values (up to a limit) and call metastore.listPrincipals
For (2) I'd retrieve all roles with metadata.listRoles, then filter them by the predicate and retrieve the remaining ones with metadata.listPrinicipals. That way any predicate would work. Perhaps (1) should just do the same.
For (3a) this looks quite tricky to me.
For (3b) I'd loop over the passed grantee name and retrieve them with two calls metadata.listRoleGrants one for USER and one for ROLE. This is still a pretty significant optimization when you look for the roles granted to a specific user.

Added predicate pushdown as described above.
For role names it supports all kinds of predicates (since we can enumerate all existing roles and then filter them), grantee names support "point values" only. To avoid surprises the grantee_type does not have to the specified, the code will retrieve both USERs and ROLEs of that name.
The "public" role is not listed, since that mapping is not actually stored anywhere and so cannot be retrieved when querying through roles.
There's a basic test. If there's a good place to test the predicate pushdown, please point me to it.
Other than perhaps more test and a place to put the documentation, this should be good for review.
@kokosing @martint

Looking at the test-failures...

All tests fixed now. @kokosing

Expanded the test a bit to include a predicate filter.

I like the idea of system table, I regret that I haven't thought about this in the first place. However, I am not sure if it is easy to implement predicate pushdown for that easily.

There's certainly precedence for non-standard information_schemas:

https://dev.mysql.com/doc/refman/8.0/en/information-schema.html
https://www.postgresql.org/docs/9.1/information-schema.html
https://cloud.google.com/bigquery/docs/information-schema-intro
https://docs.snowflake.com/en/sql-reference/info-schema.html
https://docs.oracle.com/cd/E19078-01/mysql/mysql-refman-5.0/information-schema.html

Without predicate pushdown I do not think that this would be useful.

Another question... So if had a Hive catalog called x. There would then be a table x.system.role_grants, right?
What if somebody has a system schema already in their Hive catalog? How would we ensure that there would be no name collisions?

Ok. I found a way for doing this, including some more limited predicate pushdown (limit is not supported and only single values).
Before I go on with this, let's please agree to do so and what the table should be called exactly. :)
I still think it's much better to expose this along ROLES, ENABLED_ROLES, and APPLICABLE_ROLES in information_schema

I think we’d need to reserve system as a special name for Presto (in the Hive connector). We could make that name configurable if it’s a problem.
My main concern is that the implementation in the engine is specific to Hive. I’m not familiar enough with roles in the SQL standard to know what this should look like and will need to research it. Maybe @martint knows.

Thanks @electrum . I have a change more or less ready for the system table approach (was actually a good opportunity to understand the bootstrapping process better). The only problem left is not to install that table when SqlStandardAccessControl is not enabled for a catalog.
For now I'll hold off until I hear more.

For the information_schema we have more connectors that do support standard SQL access control: PostgreSQL, Phoenix, Oracle, and others.
In the future I'd envision that we could expose ROLES, ENABLED_ROLES, APPLICABLE_ROLES, TABLE_PRIVILEGES (and hopefully ROLE_GRANTS) for those as well.
I suppose the general question is how much of that we allow to do via Presto and for how much of these we'd defer to the underlying databases.
@kokosing @electrum @martint

I started a slack discussion on this.
I did find this in the standard (https://crate.io/docs/sql-99/en/latest/chapters/16.html#the-information-schema):
The total number of Views in INFORMATION_SCHEMA, and their exact definition, is non-standard because the SQL Standard allows implementors to add additional Views, as well as to add additional Columns to the Standard- defined Views, to describe additional, implementation-defined features. However, except for one exception, the View descriptions that follow must all be supported by your SQL DBMS.
And this (http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt):
         An implementation may define objects that are associated with          INFORMATION_SCHEMA that are not defined in this Clause. An im-          plementation may also add columns to tables that are defined in          this Clause.
So added a table to the iinformation_schema really seems to be the right way here.

Based on discussions on slack I propose the following:
Add information_schema.ROLE_AUTHORIZATION_DESCRIPTORS with the following shape:
(role, grantor, grantor_type, grantee, grantee_type, is_grantable)
Note: Technically the existong ROLES table and this table should be in a schema called definition_schema.
I'm proposing - just like ROLES - to put it in information_schema, but again we wouldn't be SQL standard compliant. (Perhaps with a followup PR to move both into a schema called definition_schema.)

I'll post an update soon that adds the definition_schema with both roles and role_authorization_descriptors in it. roles will also remain available information_schema for backwards compatibility.
In order to avoid a large amount of code both schemas are served from the current InformationSchema* classes. If that is not acceptable I can disentangle that too.

Push as a new commit, so that we can see the difference. If OK, I'll squash before commit.
@martint , @electrum , @kokosing please have a look.

presto> show schemas;
       Schema
--------------------
[...]
 definition_schema
 information_schema
[...]
(11 rows)

Query 20200501_020552_00067_7ij2u, FINISHED, 1 node
Splits: 19 total, 19 done (100.00%)
0:00 [11 rows, 129B] [43 rows/s, 514B/s]

presto> show tables in definition_schema;
             Table
--------------------------------
 role_authorization_descriptors
 roles
(2 rows)

Query 20200501_020609_00068_7ij2u, FINISHED, 1 node
Splits: 19 total, 19 done (100.00%)
0:00 [2 rows, 89B] [6 rows/s, 307B/s]

presto> show tables in information_schema;
      Table
------------------
 applicable_roles
 columns
 enabled_roles
 roles
 schemata
 table_privileges
 tables
 views
(8 rows)

Query 20200501_020616_00069_7ij2u, FINISHED, 1 node
Splits: 19 total, 19 done (100.00%)
0:00 [8 rows, 300B] [32 rows/s, 1.19KB/s]

presto> select * from definition_schema.role_authorization_descriptors;
 role_name | grantor | grantor_type | grantee | grantee_type | is_grantable
-----------+---------+--------------+---------+--------------+--------------
 admin     | NULL    | NULL         | admin   | USER         | YES
 admin     | NULL    | NULL         | lars    | USER         | NO
 admin     | NULL    | NULL         | user    | USER         | YES
 admin     | NULL    | NULL         | test    | USER         | NO
 auth      | NULL    | NULL         | lars    | USER         | NO
 auth      | NULL    | NULL         | auth    | USER         | NO
 test      | NULL    | NULL         | auth    | ROLE         | NO
 test      | NULL    | NULL         | lars    | USER         | YES
(8 rows)

Query 20200501_020635_00070_7ij2u, FINISHED, 1 node
Splits: 17 total, 17 done (100.00%)
0:00 [8 rows, 360B] [29 rows/s, 1.28KB/s]

Fixing some tests.

I'll look at the remaining tests when we have agreed on final way to expose this information.
I have no explored four different ways:

SHOW PRINCIPALS role and SHOW ROLE GRANTS FOR
A new table in information_schema (I called it role_grants, but we can just name it role_authorization_descriptors and add the grantor columns)
A system table of the same shape.
roles, and role_authorization_descriptors in a new definition_schema. Also keep a roles table in information_schema for backward compatibility.

All of these are good options (IMHO). Let's pick one. :)
(I'd vote for (2) followed by (4), followed by (3) and (1)... In that order.)

I would go with 2 and possibly with 4 later.
We need to to get conclusion before we move any further. @martint @electrum What is your voice here?

Rebased yesterday evening.
Yep... (2) or (4) seem to be the best options.
(4) is a bit more SQL compliant, but (2) is more in line with what we have already in Presto, a smaller less disruptive change, and perhaps less of a surprise to users (no new schema).
If we decide for (2) I'll remove the last commit and continue from there, for (4) I'd squash the two commits and then go from there.
This is also a friendly (ping) :)
(I'd like to do an internal release with this functionality and would prefer to do it with the open source implementation.)

@martint @electrum ping... Just point me in the right direction and I'll continue.

Rebased
@kokosing @martint @electrum

Any updates?
Perhaps let me just pick an implementation (option 2 from above) to use at Salesforce for now.
(but I'd prefer not to do a fork even if it's temporary)

I didn't realize that the existing role tables in information_schema are non-standard. That was probably a miss when we were reviewing and merging that feature. But since we already have those, I think it makes sense to be consistent with those. Let's go with option 2.
I'm still concerned that the comments in InformationSchemaPageSource talk about the Hive metastore. How specific to Hive is this implementation? Would it be applicable to other connectors?

Thanks @electrum . That's an excellent point. These are Hive Metastore limitations.
There are two options, I think.

Say that listRoleGrants and listPrincipals is the lowest common denominator. Then all connectors would have to implement those two.
Think of a more general interface in Metadata, and connectors are free to implement that as they see fit. The trick would be to still benefit from predicate push down.

OK... I'll go with (2) above + change the name of the table to role_authorization_descriptors.
And I'll think through a metadata interface that is better applicable to all connectors.

OK... Updated to use information_schema.role_authorization_descriptors.
The syntax should be final.
I will now look into how to add a more useful method to Metadata and ConnectorMetadata to allow connectors retrieving all role grants. Something like 'getAllRoleGrants` with optional role and grantees passes for filtering.

Good. Functional tests. That's a baseline. I'll have a change to push the Hive specific logic into the Hive Connector.

OK... Have a look. The Hive logic is now where it should be: io.prestosql.plugin.hive.security.SqlStandardAccessControlMetadata in a new method: listAllRoleGrants that is being passed the relevant predicated to optionally filter the results.

Thanks for the review @kokosing .
Pushed a new change:

added LIMIT tests. The interesting bit there was that unless we force an ordering the order is more or less random, and if we do provide an ordering the optimization cannot be used. So I'm just verifying the count except for the one case where I know internally which one row will be returned
Cleaned up the login in SqlStandardAccessControlMetadata
Renamed the variable names as requested.
Fixed the logic in InformationSchemaMetadata

Didn't change:

extra tests for InformationSchema.
extra permission ROLE_AUTHORIZATION_DESCRIPTORS

Enhanced MockConnectorFactory and added role tests to TestInformationSchema.

Thanks for the review @kokosing .
Pushed another update.

I left the predicate pushdown where it is, since it is really only the connector that knows how to best optimize. I think this is as good as it gets, otherwise we'd be leaking Hive specific details into all other connectors.
Also have not done the predicate pushdown counting, yet. Looking into that part now.

Also added predicate pushdown counting, which also verifies that LIMIT is not pushed together with the other predicates.

Pushed a rebase. Let's get this over the finishing line. :)

Let's get this over the finishing line. :)

Let's solve the: https://github.com/prestosql/presto/pull/3535#discussion_r430218051

Thanks @kokosing . See my comment: https://github.com/prestosql/presto/pull/3535#discussion_r431424748

@kokosing , pushed a new update. Let me know whether the bean approach in CountingMockConnector is what you had in mind.

TestThrottledAsyncQueue seems unrelated and passes locally.

Pushed another update. @kokosing .
I think for the test this is as good as it gets. The counters need to be mutable (that's also why the other calls are tracked with - mutable - AtomicLongs). I consolidated the counting into a single bean that tracks the relevant counts.

Merged, thanks!

Thank you @kokosing . And thanks for the detailed review on this - it makes me feel really good about the quality of the Presto code base!


Commit to other repository?

my blog is have some serect data,it was don't public
so i create a private repository to deploy the blog.
can i commit compired data to other repository?

@gamecss Yes. This GitHub Action can be used regardless of whether your Github Pages repo and hexo source code repo are private or public.
The most critical settings are the Deploy Key and Secret settings, please refer to the Usage part of README.

Thanks.I change hexo's _config.yml "deploy" to realization.


Dialog - Customize - CSS overflow Property ?

Describe the bug
in Dialog component - if use any select component if that list is great then 10 items

To Reproduce
Take a Dialog component and add it inside the select element with a list of items 20 - 30 in select-list.
Example:

Create a new React App using create-react-app
Install the @dxc-technology\halstack-react dependencies and run the app
Click on ' Select component '
Scroll down - happening for both ' select ' & 'dialog'

Expected behavior
If Dialog has custom CSS property for 'overflow'

Screenshots
Added both Screenshots in above

Hi @HanojHanu! This seems to be an old issue that was fixed in the latest release. Reproducing your bug with the latest version works fine:

Also, the Select's Listbox now has collision and other features, so it may be worth checking it! I hope it will work for your case.

Yeah, Thank @GomezIvann
Worked for me in the latest version 6.0.0


Field 'height' has not been initialized.

Why am i getting this error i'm using latest null saftey version

it comes in sizer file where all other variables  initialized but only on height


Ampersand being rendered as html in search results

The ampersand is still being rendered as html in search results in some instances but not others (appears to be for component search results, but not project results in this case). See example:

For reference see close issue #1422

This looks to be fixed now.

Right -- Very good!


Monitor chain swap addresses

This PR adds monitoring of the lockup addresses of incoming chain swaps, to check the state of any unspent funds for the swap lockup address after the swap is finished. It will periodically:

For every swap with a pending refund tx, check if the lockup address has any unspent outputs. If there are non, sets the swap to Failed/Complete.
For every swap that is expired, check if the lockup address has any confirmed unspent outputs for a month (4320 blocks). If there are some, sets the swap to Refundable.

In addition the prepare_refund / refund interface is updated to allow multiple refunds of a swap (after swap the locktime).
The RefundPending state is added to help differentiate between a pending succeeding swap and a failed swap being refunded.
Fixes #324

Waiting on #310 to merge

Apologies, I've included in the PR adding the RefundPending state because it made sense to use it when monitoring the swap


Dark mode colors seem a little bit off and friends tab is smaller

The theme colors aren't really dark like in the repo image and the friends tab is squished.

Repo image is a screenshot of my personal Spotify desktop and its not altered in any way.
So your image and ours is identical
But your feeling is real and thanks for reaching out
Thanks to you i came up with an idea to implement a brand new scheme called midnight so it will be pure dark theme.
But remember it will never be the default scheme as we choose current colors to be matched with windows 11 default bloom wallpaper. And that's because our theme is called bloom.
This color choice makes an illusion of a windows 11 application with mica backdrop.
But don't worry we will implement midnight asap to delver something that you can personally enjoy @jasonandreou
Thanks for reaching out

@jasonandreou thanks to #158 by @SunsetTechuila
now you can experience bloom in a way that you wanted. check out the scheme Dark mono
run spicetify config color_scheme darkmono to bloom the way you want!

That’s great! Thank you.

@jasonandreou Enjoy bloom


Add markdown editor

This PR adds a visual markdown editor.
Closes #2264

@matmair it looks like you are making the markdown editor "inline" with the modal forms?
I think it would make more sense to not use a modal form for the "notes" field, but have a native editor displayed on the notes page.. Please see my extremely rough mockup below:

@SchrodingersGat I will make an implementation over the weekend; I am a bit concerned with loading times on huge notes but we will see how the browser handles it.

@matmair the browser already has to load the notes to render them, I think it should be fine.
I'd also suggest that we make use of the API here, to asynchronously load (and auto-save) the notes field as the user edits it. I believe that the easymde library supports that?

@matmair I'm closing this one out as easymde has now been integrated :)


Update Mosaic theme CSS

This update make the receiver name or the conversation name more visible in mosaic theme.
(I did the same thing as PR #277 which updates the Dark theme the same way)

Can you confirm that is resolved in the latest beta?
Please see https://github.com/Aluxian/Facebook-Messenger-Desktop/issues/458

Not relevant anymore since V2 is with electron.


Behavior of f({a,b}) is non-standard

Behavior of f({a,b}) standardized; now if f(x)=x^2+x+1, f({a,b}) would return {a^2+a+1,b^2+b+1}