Ignore .gitignore'd files & other ignore patterns

When I generate tags for a babel (es6 -> es5 transpile), the generated files are also indexed. However, those files are ignored by source control, and should be ignored by symbol-gen. Ideally, all files ignored by any VCS should be ignored when generating symbols. It would also be useful to allow custom global ignore patterns, and also add ignore patterns from a .atom-symbol-gen-ignore file.

Not sure I agree with automatically not generating symbols for gitignored things. If you have a library in your node_modules it is very useful to be able to jump to the definition of the methods created by the library.... custom ignore patterns would be very useful.

It would be nice if the package would allow me to ignore all files and folders that I defined as "Ignored Names" in Atom's settings.
Plus, it would be great if there was a syntax documentation for the .ctags file. For instance, I would like to know what delimiter the --exclude option is using to separate names (or if it has to be placed more than once if you want to exclude more names).

resolved in v1.3.0

This doesn't seem to work ; it's generating tags for several folders I have ignored. I get a 200MB tag file whereas a hand-crafted invocation of the ctags program using find for the set I want is only 63kB.

@awilkins I am finding the same issue, I created a new ticket: #60


Pages with the same route load slowly when multiple new windows are opened

Pages with the same route load slowly when multiple new windows are opened

[ ] `

  test-demo1

  <nuxt-link target="_blank" to="/">
    new window
  </nuxt-link>

    Documentation

    GitHub

`

not quite clear what you mean. Do you dev mode with multiple pages opened?


Fix enumerator alloc + mark with forceinline

Up to 15% speed up to MiniTwitch.Process for free
Was
BenchmarkDotNet=v0.13.5, OS=macOS Ventura 13.4 (22F66) [Darwin 22.5.0]
Apple M1 Pro, 1 CPU, 8 logical and 8 physical cores
.NET SDK=8.0.100-preview.6.23307.25
  [Host]                 : .NET 8.0.0 (<IP_ADDRESS>704), Arm64 RyuJIT AdvSIMD
  ShortRun               : .NET 8.0.0 (<IP_ADDRESS>704), Arm64 RyuJIT AdvSIMD
  ShortRun-NativeAOT 8.0 : .NET 8.0.0-preview.6.23307.4, Arm64 NativeAOT AdvSIMD

IterationCount=3  LaunchCount=1  WarmupCount=3

|          Method |                    Job |       Runtime |     Mean |     Error |    StdDev |     Gen0 | Allocated |
|---------------- |----------------------- |-------------- |---------:|----------:|----------:|---------:|----------:|
| MiniTwitchParse |               ShortRun |      .NET 8.0 | 1.617 ms | 0.1861 ms | 0.0102 ms | 224.6094 |   1.35 MB |
| MiniTwitchParse | ShortRun-NativeAOT 8.0 | NativeAOT 8.0 | 1.459 ms | 0.0389 ms | 0.0021 ms | 224.6094 |   1.35 MB |

Now
BenchmarkDotNet=v0.13.5, OS=macOS Ventura 13.4 (22F66) [Darwin 22.5.0]
Apple M1 Pro, 1 CPU, 8 logical and 8 physical cores
.NET SDK=8.0.100-preview.6.23307.25
  [Host]        : .NET 8.0.0 (<IP_ADDRESS>704), Arm64 RyuJIT AdvSIMD
  DefaultJob    : .NET 8.0.0 (<IP_ADDRESS>704), Arm64 RyuJIT AdvSIMD
  NativeAOT 8.0 : .NET 8.0.0-preview.6.23307.4, Arm64 NativeAOT AdvSIMD

|          Method |           Job |       Runtime |     Mean |     Error |    StdDev |     Gen0 | Allocated |
|---------------- |-------------- |-------------- |---------:|----------:|----------:|---------:|----------:|
| MiniTwitchParse |    DefaultJob |      .NET 8.0 | 1.402 ms | 0.0030 ms | 0.0028 ms | 212.8906 |   1.28 MB |
| MiniTwitchParse | NativeAOT 8.0 | NativeAOT 8.0 | 1.285 ms | 0.0046 ms | 0.0043 ms | 212.8906 |   1.28 MB |

p.s.: if you're feeling adventurous might switch to pointers with ref because all these span slices will sadly have bounds checks all over the place which probably hurts the throughput
p.s.: first benchmark I see to actually perform better with AOT 🤯

Works as expected. Thanks for the notes, too. I appreciate your contribution to this project


Add boot chime and screenreader support

OpenCore supports playing the boot chime at startup, as well as accessibility of the boot menu via the OC screenreader. It would be nice to have the option to enable this in the utility, since I'm blind and it'd be useful for multibooting.

This support will help fully resolve the issue of no audio (AppleHDA not loading) when using the alcid=x boot argument. However, due to the complexity related to sample rate and other information, I will look into it further.


multiple files

Would it be possible to add a config option to allow types on different files to be in different ts files
e.g if theres foo.go and bar.go in a package, create foo.ts and bar.ts for types instead of one file

This is theoretically possible, but it would require an intermediate representation in the transpiler. The reason is that if the files refer to eachother, in Typescript you would need to have them import one-another.
So, perhaps the real answer is: not really unless we change tygo to a large degree.


Add godot version info

I added information about Godot version compatibility for 2d games, 3d games and demos sections. If there was info about engine version used in the repo, I copied it. Otherwise, if project is pre-Godot 3.x, I tried to run it on Godot 2.1, and if it works I added (Godot 2.1) annotation.
I plan to add version information for the rest of the sections as well, in later commits, but not sure if in this same PR. This PR addresses #94

Thanks!


Unexpected failure: invalid expression for if: ${{ failure() }}

When using this linter, we are seeing unexpected failures of Invalid expression when using an if: ${{ failure() }} expression on job steps.

According to the Actions docs, this is the correct expression to use for checking if the job has failed prior to arriving at a given step:

https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idif
https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#job-status-check-functions

Hah.. guess I have my answer to this question now:

Hah.. guess I have my answer to this question now:


mango-viz fails to build on miniconda2

Following Python bindings setup: https://bdg-mango.readthedocs.io/en/latest/installation/source.html#python
When running make prepare in the mango-viz directory, the following build error occurs:
> node lib/install.js

fs.js:27
const { Math, Object } = primordials;
                         ^

ReferenceError: primordials is not defined
    at fs.js:27:26
    at req_ (/mango/mango-viz/bdgenomics/mango/js/node_modules/natives/index.js:143:24)
    at Object.req [as require] (mango/mango-viz/bdgenomics/mango/js/node_modules/natives/index.js:55:10)
    at Object.<anonymous> (/mango/mango-viz/bdgenomics/mango/js/node_modules/vinyl-fs/node_modules/graceful-fs/fs.js:1:37)

npm: 6.10.0
node: 12.5.0
Python: clean miniconda2 (Python 2.7)
Mac OS 10.14.3

We no longer support python 2.7 due to Modin dependency limitations. Python 2 is also being dropped in January.


"Git:View File History" is not working

OS/Web Information

Web Browser: Chrome Version 91.0.4472.101 (Official Build) (x86_64)
Local OS: macOS Big Sur Version 11.2.3
Remote OS: CentOS Linux release 7.4.1708 (Core)
Remote Architecture: x86_64
code-server --version: 3.10.2 387b12ef4ca404ffd39d84834e1f0776e9e3c005

Steps to Reproduce
"Git: View File History" which is in popup menu at sidebar is not working. It didn't show any contents and I checked Javascript Console, following was shown

and I downgraded code-server to 3.9.0 which I used before 3.10.2 and it works fine.
I've been using git history plugin, "Git History" and its version is 0.6.15
Thanks in advance

I tried using the extension but couldn't get it to work 😢 I did get it to work in VS Code desktop though.
It's hard to tell why it's not working though. I do not see those console errors (not sure why Service Workers aren't enabled for you). There are also no logs from code-server (even running --log trace).

Thanks for filing! We'll have to investigate further.

I attached two video captures, one is 3.10.2 and the other is 3.9.0
the strange thing happens at not only "Git history plugin" but also other plugins. my attached video shows that everytime I click the plugin name to see its information, the console prints similar error messages and vscode doesn't show any information in 3.10.2.
but in 3.9.0, it also prints different error message but shows plugin information as we expected.
I hope my videos help solve the problems
https://user-images.githubusercontent.com/28073/121980037-361cae00-cdc6-11eb-9f5f-d5bc9d680735.mov
https://user-images.githubusercontent.com/28073/121980056-40d74300-cdc6-11eb-892a-d07bdf615617.mov

Very strange indeed. Thanks for the videos and thorough testing! We'll have to see what changed upstream between 3.10.2 and 3.9.0 that would affect this

I solved this problem. It seems to be related to security things. I read this article and set up ssh with port forwarding as it guided.
https://coder.com/docs/code-server/v3.11.0/guide

Awesome! Glad to hear the guide helped. I'm going to close this now.


[bazel] add pip_wheel repository rule

Currently, Bazel python rules install python packages by invoking pip wheel to download and build Python wheel archives for all package
dependencies. Unfortunately, this mechanism does not result in the wheel
archives being cached in the bazel repository_cache, like other
repository dependencies.
In order to support airgapped bazel builds (#12090), we need to be able to
pre-fetch all external dependencies and copy them over to the airgapped
environment. This includes Python dependencies (wheels).
The pip package manager does provide both: 1) a mechanism to pre-download
python package archives (in their distributed form) using pip download,
and 2) a way to use these pre-downloaded archives in subsequent invocations
of pip wheel, with the --find-links flag, which is already invoked by
the pip_install Python bazel rule.
Unfortunately, if you use VCS URLs in your requirements.txt file,
pip will still attempt to grab these from the internet using the
corresponding VCS tool (e.g., git in our case, since fusesoc, edalize,
and chipwhisperer packges are all specified with git urls in our
python-requirements.txt file) in subsequent invocations of pip wheel
or pip install, even if they have been pre-downloaded with pip download,
and you have specified their location on your system with the
--find-links opt.
To overcome this, pip also provides a wheel subcommand that will
both pre-download python package archives, AND, build a wheel for those
packages that are not already distributed in wheel form. We can take
advantage of this, and both pre-download existing wheels for packages
that provide them, and build wheels for packages that do not, i.e. those
specified via VCS URLs. Then, we can generate a new requirements.txt
file on the fly that does not contain any VCS URLs, so that future
invocations of pip wheel or pip install will hit our
pre-downloaded/built wheel cache.
This commit accomplishes the above by:

adding a custom bazel repository rule to:
a. pre-download/build all Python packages (specified by the project's
python-requirements.txt file) in wheel form,
b. generate a VCS-URL-free requirements.txt file on the fly that
describes only those dependencies specified in the original
python-requirements.txt file whose wheels were downloaded/built
in (a),
re-vendoring of a forked version of the Python bazel rules
(rules_python) that contains a patch to support passing the location
of the pre-downloaded Python wheels to the pip_install rule, to further
pass to it's underlying invocation of the pip wheel command along with
the --find-links opt.
updating the prep-bazel-airgapped-build.sh script to copy over the
pre-built python wheel repo to the airgapped prep directory.

This fixes #12090.
Signed-off-by: Timothy Trippel<EMAIL_ADDRESS>

I am amazed at how simple the code is. Well done Tim.

Hehe thanks, I'd be lying if I said it didn't take a few iterations to clean it up :)


chore(release): prepare for release

Description
Preparing to release multiple packages.
The following 18 packages will be updated:

Package Name                           Current Version   Updated Version   Update Reason
android_intent_plus                    3.1.3             3.1.4             updated with patch changes
battery_plus                           2.2.2             3.0.0             updated with major changes
device_info_plus                       5.0.5             6.0.0             updated with major changes
device_info_plus_platform_interface    4.0.1             5.0.0             updated with major changes
network_info_plus                      2.3.1             2.3.2             updated with patch changes
package_info_plus                      1.4.3+1           2.0.0             updated with major changes
package_info_plus_macos                1.3.0             2.0.0             updated with major changes
package_info_plus_platform_interface   1.0.2             2.0.0             updated with major changes
package_info_plus_web                  1.0.6             2.0.0             updated with major changes
share_plus                             4.5.3             5.0.0             updated with major changes
share_plus_linux                       3.0.0             3.0.1             updated with patch changes
share_plus_windows                     3.0.1             4.0.0             updated with major changes
device_info_plus_web                   4.0.2             4.0.3             dependency was updated
device_info_plus_linux                 4.0.2             4.0.3             dependency was updated
device_info_plus_windows               5.0.2             5.0.3             dependency was updated
device_info_plus_macos                 4.0.2             4.0.3             dependency was updated
package_info_plus_linux                1.0.5             1.0.6             dependency was updated
package_info_plus_windows              2.1.0             2.1.1             dependency was updated

Following the release process from the contributor guide.
Related Issues
None
Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I titled the PR using Conventional Commits.
[ ] I did not modify the CHANGELOG.md nor the pubspec.yaml files.
[ ] All existing and new tests are passing.
[ ] The analyzer (flutter analyze) does not report any problems on my PR.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
[x] No, this is not a breaking change.

Were all changes generated by melos?

Were all changes generated by melos?

Yes, using melos version

New version release after manual cleanup
The following packages will be validated only (dry run):

Package Name                            Registry    Local
battery_plus                            2.2.2       3.0.0
android_intent_plus                     3.1.3       3.1.4
device_info_plus_platform_interface     4.0.1       5.0.0
device_info_plus_linux                  4.0.2       5.0.0
device_info_plus_web                    4.0.2       5.0.0
network_info_plus                       2.3.1       2.3.2
device_info_plus_windows                5.0.2       6.0.0
device_info_plus_macos                  4.0.2       5.0.0
device_info_plus                        5.0.5       6.0.0
package_info_plus_platform_interface    1.0.2       2.0.0
package_info_plus_linux                 1.0.5       2.0.0
package_info_plus_macos                 1.3.0       2.0.0
package_info_plus_windows               2.1.0       3.0.0
package_info_plus_web                   1.0.6       2.0.0
package_info_plus                       1.4.3+1     2.0.0
share_plus_linux                        3.0.0       3.0.1
share_plus_windows                      3.0.1       4.0.0
share_plus                              4.5.3       5.0.0


Add some documentation for the =~=/≅ operator

Looks good, and I'm not seeing any reason not to merge :)


adding dark mode

Hi Cristian, I added the dark mode without making any big change (just separate the styles in a different file), I hope it works, DM if you need something else.

This one handles #18

Hi @cristianbote I added the @media (prefers-color-scheme: dark) and remove the button, and also set the styles in the same html file.


Simplify code with use conditional invoke

Contributes to dotnet/docs#15768
Use conditional invoke to simplify code

Thanks @SuperNova911 I'll :shipit: now.


add file and create the hash code problem

WebTorrent version: https://www.extratown.com/plugins/webtorrent-master/webtorrent.min.js
Node.js version:
Browser name/version (if using WebTorrent in the browser): chrome and firefox

this is my web page for test and develop webtorrent programme:
https://www.extratown.com/webtorrent
the problem that when i add the file over than 100mb in the browser will crash, if i use the android chrome browser over than 15mb will crash. and the cpu loading 120%-180%.
off topic:
1, the trackers server in list about 1 websocket 5% cpu is it normal?
2, i trying to use webtorrent to develop video streaming. but now maybe have no browser good for recording and play video. have people interested together develop?
the test link: https://www.extratown.com/streaming
(just chrome can recording and only firefox can play streaming)
my english not good, please forgive me, thank you!

@yanshekki Not sure why you're having issues. What OS and browser are you using on desktop? I just tested uploading a 200MB video file on that URL without issues.
What happens when you use https://instant.io? I can get a 1GB to work there, easily.
Maybe you have a browser extension that's doing something really inefficient with the webpage? Try it in a incognito/private window with no extensions enabled.
If you have further information to share, please comment and we'll re-open this issue.


pull request for e2e test at 12/26/2016 10:45:06

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


changed letter

changed a letter

There are a lot of typos that were not corrected in the document. Can you please correct those typos and resubmit the pull request?


Pyright Gives arguments missing for parameters

Pyright gives arguments missing for parameters when field with default values aren't given values when calling the constructor.

pydantic and pydantic-settings work well with mypy. I am not sure they work properly with pyright.
Take a look at visual studio code integration doc for more information.

Here's a minimal POC showing there's an issue going on.
exmaple.py
from pydantic_settings import BaseSettings
from pydantic import ValidationError
class TrivialConfig(BaseSettings):
    DOMAIN: str
    SUBDOMAIN_API: str
    WAIT_SEC: int = 5
    RETRY_COUNT: int = 5

try:
    config = TrivialConfig()
except ValidationError as e:
    print(e)

mypy example.py
example.py:14:25: error: Missing named argument "DOMAIN" for "TrivialConfig"  [call-arg]
example.py:14:25: error: Missing named argument "SUBDOMAIN_API" for "TrivialConfig"  [call-arg]

By removing fields without a default there's no problem. Adding a default or default factory also leads to no problem; however, that defeats the point of throwing an error if a config is missing.

Ye, we're well aware of this.
I've asked repeatedly the typing-sig to provide a way solve this, e.g. to selectively switch off dataclass transformers on subclasses, but there's no way afaik.
If anyone has a way around this, happy to reopen.

@samuelcolvin do you have a recommendation for which upstream it would be appropriate for folks to send similar requests (or if there is an open issue we can track / show support of?)

I just ran into this issue. @samuelcolvin @slifty did you ever find a solution?

Well you could ask on discuss.python.org for a way to disable data class transforms on subclasses, but I wouldn't hold my breath.

The obvious # type: ignore workaround is worth mentioning here.

@samuelcolvin What do you think about it for the common use case where you'd like to load everything from the env / CLI args?
We could simply add a new method to settings objects like:
MySettings.from_env()

This has the added benefit of being more explicit about what it's doing. The only weirdness is finding a good name that makes sense with both loading from CLI arguments and from environment variables / files. Although I suppose you could consider CLI arguments as part of the process's "environment" so it still makes sense to some degree.

Here's a minimal POC showing there's an issue going on.
example.py
from pydantic_settings import BaseSettings
from pydantic import ValidationError
class TrivialConfig(BaseSettings):
    DOMAIN: str
    SUBDOMAIN_API: str
    WAIT_SEC: int = 5
    RETRY_COUNT: int = 5

try:
    config = TrivialConfig()
except ValidationError as e:
    print(e)

mypy example.py
example.py:14:25: error: Missing named argument "DOMAIN" for "TrivialConfig"  [call-arg]
example.py:14:25: error: Missing named argument "SUBDOMAIN_API" for "TrivialConfig"  [call-arg]

I have found that a workaround is to add = Field(default=…) for required fields that you want to throw an error if not provided.

I can definitely understand the maintainers frustration when no clear solution is present, but wouldn't it be appropriate to keep this issue open until it gets resolved?
Currently # type: ignore is the best solution but it's definitely not ideal to ignore type issues when using pydantic.

Here's a minimal POC showing there's an issue going on.
example.py
from pydantic_settings import BaseSettings
from pydantic import ValidationError
class TrivialConfig(BaseSettings):
    DOMAIN: str
    SUBDOMAIN_API: str
    WAIT_SEC: int = 5
    RETRY_COUNT: int = 5

try:
    config = TrivialConfig()
except ValidationError as e:
    print(e)

mypy example.py
example.py:14:25: error: Missing named argument "DOMAIN" for "TrivialConfig"  [call-arg]
example.py:14:25: error: Missing named argument "SUBDOMAIN_API" for "TrivialConfig"  [call-arg]

I have found that a workaround is to add = Field(default=…) for required fields that you want to throw an error if not provided.

I agree. This seems to be the correct way to move forward.

I agree. This seems to be the correct way to move forward.

Ironically the pydantic docs recommends against using ellipses for required arguments!

The field c uses the ellipsis as a default argument, emphasizing on the fact that it is required. However, the usage of the ellipsis is discouraged as it doesn't play well with type checkers.


Update index.html

adding icons

Hi @codewithishu can you please mention the issue number and mention
Closed : #< The issue number >

@DhanushNehru closes : #<22>

Please fix the merge conflict

how can i fix the conflict

@DhanushNehru  how can i resolve the conflicts

I have tried my best but didnot resolve the conflicts . please help me out

@DhanushNehru please merge my pr


Add PyPI publishing support

Taken directly from the known working https://github.com/azavea/python-omgeo/pull/33

Coverage remained the same at 80.87% when pulling 3be23f74fcdbc4b915444f048c63fca7ed1e42c9 on add-pypi-publishing into ffbe3f9c54bdb5064f59c2cce48d957d7947b716 on master.

Coverage remained the same at 80.87% when pulling e5c61b231f5b3c6d61137b3b5b2038cfbe8c0f83 on add-pypi-publishing into ffbe3f9c54bdb5064f59c2cce48d957d7947b716 on master.


Is there an example of uploading a file using C#?

There is no C# tab.   I'd like to know if there's a way of doing this using C#?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: d92fb8c7-4409-d945-57dd-5d6fc4010051
Version Independent ID: f77c05bd-2688-bd4e-1f8f-f18feb3a8639
Content: Upload small files - Microsoft Graph v1.0
Content Source: api-reference/v1.0/api/driveitem-put-content.md
Product: sharepoint
Technology: microsoft-graph
GitHub Login: @spgraph-docs-team
Microsoft Alias: MSGraphDocsVteam

Hi,
Thanks for your feedback. Unfortunately this repo is for keeping track of issues or new contributions in the Microsoft Graph docs and not to provide help about how to use Microsoft Graph. You should rely on the Microsoft Graph support area (https://developer.microsoft.com/en-us/graph/support) for this kind of questions. I'm going to close this item. Thanks for your understanding.


support nesting flows

Allow flows to call other flows. Example usage in cumulusci.yml:
flows:
    example_flow:
        tasks:
            1:
                task: example_task
            2:
                flow: another_flow

A given flow may only occur once in the tree, to prevent infinite recursion
Nested flows inherit the project config, org config, flow options, and skipped tasks from parent flows
Return values from nested flows can be referenced just like tasks: flow1.flow2.task.key

Thinking about it some more, I think that task options should not be passed through to nested flows. They are particular to a task within a given flow and not meant to be applied to the flow as a whole.

@cdcarter I addressed your comments with some new commits. Please re-review.


[Bug]:  null is written to csv and becomes \N,null

What happened?
A bug happened!  The original table has only 29 columns
Version
4.1.3 (Default)
OS Type
Linux (Default)
Java JDK Version
Oracle JDK 1.8.0
Relevant log output
Error while reading table: xima.test, error message: CSV table references column position 32, but line contains only 32 columns.; byte_offset_to_start_of_line:<PHONE_NUMBER>6 column_index: 32 column_name: "timestamp_field_32" column_type: TIMESTAMP File: gs://test/test.csv_0d99df356bb6451dacc008a2c5aa7792

After removing this line of code, the data is normal
  delete sj.add(this.nullFormat) code;

        private String record2String(Record record) {
            StringJoiner sj = new StringJoiner(this.fieldDelimiter + "");
            int columnNum = record.getColumnNumber();
            for (int i=0; i < columnNum; i++) {
                Column column = record.getColumn(i);
                if (column == null || column.asString() == null) {
                    //sj.add(this.nullFormat);
                }
                assert column != null;
                Column.Type type = column.getType();
                if (type == Column.Type.DATE) {
                    SimpleDateFormat sdf = new SimpleDateFormat(this.dateFormat);
                    sj.add(sdf.format(column.asDate()));
                } else {
                    sj.add(column.asString());
                }
            }
            return sj.toString();
        }

Please paste the complete running output here

Sorry addax's log has been deleted. Writing is normal, but reading is wrong now.


Reject schema with nonoptional object property

Copied from https://github.com/realm/realm-js/issues/1104:

Currently, all of the following properties (alpha, beta, and gamma) will be effectively optional:
const Foo = {
    name = 'Foo',
    properties: {
        alpha:  {type: 'Foo'},
        beta:   {type: 'Foo', optional: false},
        gamma:  {type: 'Foo', optional: true},
    }
};
let realm = new Realm({schema: [Foo]});

It seems to me that we should at least disallow {type: 'Foo', optional: false}, since it is ultimately not honored. I also think we should either disallow {type: 'Foo'}, or document that optional is true by default for object (link) properties.

This is already done.

Right, JS actually overrides the user input in case the property is a link: https://github.com/realm/realm-js/blob/master/src/js_schema.hpp#L128.
Sorry @kspangsege, I’ll reopen https://github.com/realm/realm-js/issues/1104 and start tracking it.


Add a search function

It'd be nice to fleek search or something so I don't need to tab out to a browser to look up a packagename.

nix search nixpkgs --json
returns a nice json list of nix packages in less than a second. maybe use this

fixed by #76


Create a .gitignore file for the project.

Let us please reduce the risk of committing/pushing irrelevant IDE-related files into the repo.

.gitignore is there


Remove Windows Auth type from ODBC connector descriptions

Change the comment in ODBC linked service.

Hi @yitao-zhang, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (yitzhang). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;


PoshChan is great but PR conversations can become noisy really quickly

I love the addition of the PoshChan bot and receiving email messages for PR tests that fail. That's tremendously valuable, thank you for adding that, I really appreciate it.
That said, I think you should reconsider PoshChan's interaction with conversations on the PR. The automated build process already shows its results in a PR, and while manually pulling the details of a failed build step is tedious/annoying, pulling those details out and adding them directly to the PR conversation is too noisy and takes value away from a PR conversation, especially when there are multiple builds (Windows, macos, linux) and when certain tests fail on each of those builds, resulting in the same information being posted three times.
How about updating PoshChan to gather the data for build step failures and posting a single message to the conversation that:

Tags the PR author; and
Includes a link to the specific issues (which would be stored elsewhere -- a randomly named text file in the cloud, or something similar) so that the PR author can review and correct the issues while still having useful, less noisy conversation in the PR itself.

Either that or have PoshChan hide/remove old messages from a PR conversation when a new build starts so that only the latest are immediately visible, and on successful build hide/remove any previous messages.

/cc @SteveL-MSFT

@KirkMunro can you open an issue here? https://github.com/SteveL-MSFT/PoshChan-Bot
Let me think about this a bit.  There isn't an API to hide comments, but there is one to delete them.


interface refactoring

[x] redefine method of dataclasses_json for write undefined arguments to one dict, defined in dataclass definition. We need dynamical add some attrs, not a dict

from dataclasses import asdict, dataclass

@dataclass
class X:
    i: int

x = X(i=42)
x.s = 'text'

x
# X(i=42)

x.s
# 'text'

asdict(x)
# {'i': 42}

X = make_dataclass('X', [('i', int), ('s', str)])
x = X(i=42, s='text')

asdict(x)
# {'i': 42, 's': 'text'}

# Or as a derived class:

@dataclass
class X:
    i: int

x = X(i=42)
x.__class__ = make_dataclass('Y', fields=[('s', str)], bases=(X,))
x.s = 'text'

asdict(x)
# {'i': 42, 's': 'text'}

here
dynamical removing
Global changes:

[x] new Component class - this is dot.notation dict and it used for attributes inside Game. Notimplemented set attr ous.tside dict
[x] Base class
[ ] Game class

[ ] t attr
[ ] i attr
[ ] p attr
[ ]  this attrs are components
[ ] add method item -> i, player -> p, tool -> t

[ ] Tools class

[ ] i attr for items
[ ] add method

[ ] items
[ ] players
[ ] constraints
[ ] errors
[ ] test all

#220


chore: pin docs dependencies

This should prevent having out docs pipeline getting broken
by changes made in sphinx or related dependencies.
Related: https://github.com/sphinx-doc/sphinx/issues/10112

Merged in order to unblock CI


Feature idea

Expected Behavior
Sort questions by priority
Actual Behavior
Questions sorted by ID
Specifications

Version: 13.8.23

Hi there! We don't have a concept in DFIQ for priority, which is why you can't sort questions by it.
I'd be interested in any thoughts around how a priority system in DFIQ would work.
My thoughts on the issue are:

Priority is subjective, and the priority of a question will vary depending on the specifics of a case and the answers to other, related questions
in DFIQ, Scenarios are broad "knowledge bases" for a particular type of investigation - a responder can use it as reference and pick and choose what questions make sense, based on their specific case. I don't think generically assigning priority to Questions within a Scenario makes sense in DFIQ's context
Scenarios aren't the only way to organize Questions (it's just the initial way in DFIQ). If someone wants to make a checklist or punchlist of Questions, ordered by some kind of priority that makes sense in their context, that's totally fine.
DFIQ is trying to stay out of the "flowchart" part of making playbooks/runbooks; that feels too brittle and subjective and would need a lot of maintenance and room for discussions as to the "correct" way. Keeping DFIQ more focused on Questions allows it to focus more on facts (what files were downloaded? was psexec run?) rather than investigation philosophies on what to do when.

That was a long-winded response, but DFIQ is still in the early stages so we have a lot of this kind of "philosophical" stuff to hash out still - so thanks for the question! We definitely need to consider stuff like this.

The order doesn't have to be mandatory, but it probably would help to have the common stuff first, once you have bigger scenarios like e.g. creation of backdoors.

Priority is not only subjective also highly context specific, in a traditional Microsoft shop the standard Windows artifacts might be common, but in a cloud first organization unlikely. "common" is typically limited to the data set.
Also what do you want to use priority for? Detection? Triage? The term investigation implies a certain level of comprehensiveness.


Service Fabric availability is confusing

The text under Service Fabric says
Managed Identity for Service Fabric Applications is in Preview and available in all regions.
But then the matrix, the All Generally Available / Global Azure Regions column says it's Available, when other matrices says "Preview" when it's not GA'd.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 726adac9-1848-01a6-9586-842c81f820f7
Version Independent ID: 249db438-8c95-8e69-f69e-8e48fcd0b359
Content: Azure Services that support managed identities - Azure AD
Content Source: articles/active-directory/managed-identities-azure-resources/services-support-managed-identities.md
Service: active-directory
Sub-service: msi
GitHub Login: @MarkusVi
Microsoft Alias: markvi

@david-jarman Thank you for reaching out. We will investigate and update the thread further.

@david-jarman Managed Identities for Service Fabric is under "Preview" as of today for all regions.
As for the matrix, @MarkusVi - could you confirm and change the document as required ?

#reassign:barclayn

@david-jarman Thank you for your feedback. I have added this issue to an internal work item that we have created to collect all updates related to this article. We hope to be updating this article to include all relevant services.  #please-close


Security key has no use?

Some cards have a security effect some don't.
The card you screenshot yes should be Tanemon, this card doesn't have one.

Another example of memory boosts, where it is in the digivolutionEffect. Most have it in the inherited 😅

Ohh you're right there was an error since a few commits. The script wrote the security effect in the digivolve effect.
Gonna be fixed with the next build tomorrow. Thank you 😁


add to home on ios - improvements

You can add to home from Safari now on iOS from the share button, but we don't see the popup. Add to Home support on iOS was iffy at the start so maybe something broke our implementation.
See for e.g.
https://stackoverflow.com/questions/54001523/is-add-to-home-screen-feature-of-pwa-supports-in-ios
Add to Home works on Android and our site passes all related PWA tests, like having a manifest.

There's still no way to show a prompt for add to home in safari.
Added splash screen images, but waiting for UI team to provide the proper images.

if this is in code review, was something done?

I added a few meta tags for iOS devices and added splash screen image support with an example splash screen for all iOS device screen sizes.


Develop: Added features related to the API/Dashboard

Added basic interaction with the API, Dashboard still being troubleshooted.

Partially resolves #7
Added reaction gif commands
Added tag version workflow
Fixed Dockerfile

Flagged by CodeFactor for node:latest in Dockerfile, ran into issues with test build when working with node:alpine. Will switch to another working tag when available.

:tada: This PR is included in version 1.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Questionable design of ILogger.Log(..., Func<TState, Exception, string> formatter)

If we take a look at https://github.com/aspnet/Logging/blob/dev/src/Microsoft.Extensions.Logging.Abstractions/LoggerExtensions.cs
You will notice that the message formatter does absolutely nothing with the given Exception object
private static string MessageFormatter(object state, Exception error)
{
    return state.ToString();
}

From the whole naming and how it used to be in RC1, I was lead to believe that I have to implement something like return state + \n + error (pseudo code) for my message formatter.
Then I was looking at https://github.com/aspnet/Logging/blob/dev/src/Microsoft.Extensions.Logging.Console/ConsoleLogger.cs I saw that
            var message = formatter(state, exception);
[...]
            if (exception != null)
            {
                // exception message
                exceptionText = exception.ToString();
                printLog = true;
}
[...]
                    if (!string.IsNullOrEmpty(message))
                    {
                        Console.WriteLine(
                            message,
                            DefaultConsoleColor,
                            DefaultConsoleColor);
                    }
                    if (!string.IsNullOrEmpty(exceptionText))
                    {
                        Console.WriteLine(
                            exceptionText,
                            DefaultConsoleColor,
                            DefaultConsoleColor);
}

The reason why I think is a design flaw is that the ILogger implementation has to assume that the provided formatter does not use the exception object to format the message or else you will have a duplicated exception message in the total output.
I totally agree with the choice to give the Exception object to the ILogger in order to be able to log it in a somewhat special way, but then again, how should the formatter know that.
A workaround would be to specifically not give exception to the formatter, but that feels like a hack IMO.
What do you guys think? Should
ILogger.Log<TState>(..., [NotNull] Func<TState, Exception, string> formatter) be
ILogger.Log<TState>(..., [NotNull] Func<TState, string> formatter)?

While I agree in principal that it's unfortunate the implementation has to assume this, we're not going to be changing the interface at this point. We're pretty much locked down at this point.

@davidfowl Thanks for the info. Is going back to letting the formatter handle both arguments an option? Wouldn't change the interface, but be more consistent.

It would probably be better to have the formatter only take a single argument at this point,  that or saying that sinks should ignore it altogether. It's really just a fallback for the cases when the logging provider doesn't know how to handle formatting the object and exception passed in... Maybe we should just pass a null formatter.

Nothing we can do here.


add imap idle method to wait for new messages

I added a small feature that uses IMAP IDLE, which has a method supporting it in the standard library IMAP implementation. I've written it to return when a new message is received, so you can use it to avoid repeatedly polling your inbox. You should also be able to pass a block that gets executed on new messages, but I didn't have time to write a test for it so I'm not sure if that bit works.
There's also the issue of IDLE timing out after 30 min, the code I adapted this from wraps the whole imap.idle block in a loop and has a separate thread that closes and reopens the connection -
loop do
  Thread.new do
    puts "Starting timer"
    sleep 29 * 60
    imap.idle_done
  end

  imap.idle do |r|
     # etc
  end
end

but I'm not sure this is the best way to handle it, so I've left the timeout handling out here.

This issue was moved to gmailgem/gmail#93

Moved to gmailgem/gmail#136


Track container image vulnerabilities

FEDRAMP VULNERABILITY SCANNING REQUIREMENTS FOR CONTAINERS includes the following:

Instances of prod-deployed containers must by tracked internally by the CSP via an automated mechanism, which must be validated by a 3PAO to meet the baseline control CM-8. Every production-deployed container must correspond to the image from which the deployed container originated, in order to identify the total number of relevant vulnerabilities on production associated with that container.

We should consider if a hypothetical CVE-2024-12345 drops, and we need to know where that's running, that we have a mechanism for doing so.

@jameshochadel This seems to correspond to what you were saying about setting up a database with our audit scan results, but for this case it would be the CVE results

Perfect. There must be existing software to do this, but it also might not be too bad to write our own? (Famous last words, I know.)

https://defectdojo.org is worth evaluating here.

It looks like defectdojo is able to use grype output that's in json format: https://documentation.defectdojo.com/integrations/parsers/file/anchore_grype/

This ticket is linked to private#794


cart icon is hidden in RTL

Bug report
Title
cart icon is hidden in RTL
Issue Description
cart icon is hidden in RTL
Preconditions
1. framework Version- master

Steps to reproduce
1. step1- convert the store front in RTL fromat

Expected result
cart drop-down icon should visible

Actual result
cart icon is not visible fully

@devansh-webkul
please fix this in RTL https://prnt.sc/v9zefl


Not all deaths leading to becoming zombie

Hello, I had an idea regarding conditions of turning into SCP-049-2. There could be config, that sets, which death will lead to becoming SCP-049-2 and which will kill player. For example dying to infection, being killed by SCP-049-2 and SCP-049 (and maybe other SCPs) while infected would turn player into zombie. In other instances like commiting suicide or shooting infected person wouldn't lead to becoming SCP-049-2. I think it could be great, because you can still avoid becoming zombie and potentially save your teammates by killing yourself/ asking for mercy kill, if you don't have medkit/SCP-500.

I'll start working on this after I get home today

OK, thanks!


Event pages not featuring sponsors

I'm not sure if this is a bug, a regression, or working as intended.
Currently, event sponsors/financial contributors aren't really being shown in the event page design. For example on this event they only appear as tiny icons on the contribution card.

Looking at the profile page settings for an event, it seems like you're not able to activate the contributors section, which would show the leaderboard and highlight the sponsors. That section is just missing from the list.

I think this is not great because event sponsorship is a major way money comes into many events and a very important aspect of the feature, which is meant to be a combination of event functionality, budget functionality, and transparency about funding.

Currently for Events, we display "Sponsors" in the "Participants", it's the historical behavior.

This issue seems a duplicate of https://github.com/opencollective/opencollective/issues/3637


V1.3 improve find friend

Allow users to find friend by name substring , tags, and log title substring
Summary of changes made

Modified the @Test method in the NameContainsKeywordsPredicate class
Added new test cases accordingly

Codecov Report

Merging #139 (86d806b) into master (cfb93d1) will increase coverage by 0.10%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master     #139      +/-   ##
============================================
+ Coverage     70.24%   70.34%   +0.10%
- Complexity      651      656       +5
============================================
  Files           103      103
  Lines          2332     2340       +8
  Branches        335      336       +1
============================================
+ Hits           1638     1646       +8
  Misses          561      561
  Partials        133      133

Impacted Files
Coverage Δ

.../seedu/address/logic/parser/FindCommandParser.java
100.00% <100.00%> (ø)

...ss/model/person/NameContainsKeywordsPredicate.java
100.00% <100.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


chore: 🔧 更新 lock 和 changelog 文件

👀 PR includes

✨ Feature

[ ] New feature

🎨 Enhance

[ ] Code style optimization
[ ] Refactoring
[ ] Change the UI
[ ] Improve the performance
[ ] Type optimization

🐛 Bugfix

[ ] Solve the issue and close #0

🔧 Chore

[ ] Test case
[ ] Docs / demos update
[ ] CI / workflow
[ ] Release version
[x] Other ()

📝 Description
更新 lock 和 changelog 文件
🖼 Screenshot

Before
After

❌
✅

🔗 Related issue link

🔍 Self Check before Merge

[ ] Add or update relevant Docs.
[ ] Add or update relevant Demos.
[ ] Add or update relevant TypeScript definitions.

:tada: This PR is included in version @antv/s2-react-v1.16.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


luna setup.cfg

Updated package metadata, extras_requires, included python-semantic-release in setup.cfg
Updated readme with installation instructions
Reorganized project in pyluna-* subpackages with separate setup.cfg and tests.
Old and minimal code is under src/ for now. (to be moved to pyluna-* package once it's a mature enough package.)
Updated circleci config to run and combine tests under the individual packages.

Added a small Contributing guide for developing with a local setup using Python paths, moved src to src/luna so it can be included in the luna namespace.


fix(curriculum): Extended description

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #47165

I have updated the description @jeremylt.


video recording

this is a requested enhancement in issue #4

Right now it returns a local url of the video file. Not sure what the end goal is, but this should help.

@waterskier2007 Thanks! However, I just updated the project structure today. It could conflict with your codes so could you add the video mode you just wrote to the current codebase, if possible?

Definitely. I can do that
Sent from my iPhone

On Mar 26, 2016, at 12:21 AM, Yuta Akizuki<EMAIL_ADDRESS>wrote:
@waterskier2007 Thanks! However, I just updated the project structure today. It could conflict with your codes so could you add the video mode you just wrote to the current codebase, if possible?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

This branch conflicts not resolved.
This branch has conflicts that must be resolved
Only those with write access to this repository can merge pull requests.

@Withney I will refer this pull request and surely add the video mode.

how is it then? any news about this awesome video feature? :)

Also checking on this.  Would love this feature as well...


Refacter code to use new ObjectType

Proposed changes
Problem: We currently use the variable objType to refer to a client.Object's type (skeleton of an object). We also use the variable obj to refer to a full client.Object (object with fields filled out). However, in many parts of the codebase these two variables are used closely together and are both of type client.Object which can be a little confusing.
Solution: I created a new type called ObjectType and refactored the codebase to utilize it.
Closes #1456
Checklist
Before creating a PR, run through this checklist and mark each as complete.

[X] I have read the CONTRIBUTING doc
[x] I have added tests that prove my fix is effective or that my feature works
[X] I have checked that all unit tests pass after adding my changes
[x] I have updated necessary documentation
[x] I have rebased my branch onto main
[X] I will ensure my PR is targeting the main branch and pulling from my branch from my own fork

Release notes
If this PR introduces a change that affects users and needs to be mentioned in the release notes,
please add a brief note that summarizes the change.

NONE

Let's also use the new type in the following places:

https://github.com/nginxinc/nginx-gateway-fabric/blob/3fafa2e1b11145905e51b70dcef3e18493d3a6aa/internal/mode/static/state/change_processor.go#L117
https://github.com/nginxinc/nginx-gateway-fabric/blob/3fafa2e1b11145905e51b70dcef3e18493d3a6aa/internal/mode/static/state/change_processor.go#L121
https://github.com/nginxinc/nginx-gateway-fabric/blob/3fafa2e1b11145905e51b70dcef3e18493d3a6aa/internal/mode/static/state/changed_predicate.go#L13
https://github.com/nginxinc/nginx-gateway-fabric/blob/3fafa2e1b11145905e51b70dcef3e18493d3a6aa/internal/mode/static/state/changed_predicate.go#L56
https://github.com/nginxinc/nginx-gateway-fabric/blob/3fafa2e1b11145905e51b70dcef3e18493d3a6aa/internal/mode/static/state/changed_predicate.go#L30

@pleshakov or @bjee19 any other places we should update this type?

@bjee19 any other places we should update this type?

looks good to me! couldn't find any other places, @sarthyparty good job on being thorough!


[Debug] Allow to refetch the callstacks for a thread

Use Case: In Java Debugger, we use a decompiler to get the decompiled source when the original source is missing for a stack frame. We also have an “attach source” command for users to attach a source jar to the Java .class binary files manually. When the attached source changes, we want a way to notify the client to reload the callstack view if the currently paused thread uses the source from the new locations.
I attempted to use the DAP InvalidatedEvent https://microsoft.github.io/debug-adapter-protocol/specification#Events_Invalidated to refetch the stacks of a particular thread, but it failed in VS Code. The dap payload I attempted was {"event":"invalidated","body":{"areas":["stacks"],"threadId":1,"type":"invalidated"}, but the client only cleared the callstacks for the thread, and did not repeat the stackTrace request. Looks like VS Code doesn't fully support the InvalidatedEvent.
Here is the DAP spec for InvalidatedEvent:
interface InvalidatedEvent extends Event {
  event: 'invalidated';

  body: {
    /**
     * Set of logical areas that got invalidated. This property has a hint
     * characteristic: a client can only be expected to make a 'best effort' in
     * honoring the areas but there are no guarantees. If this property is
     * missing, empty, or if values are not understood, the client should assume
     * a single value `all`.
     */
    areas?: InvalidatedAreas[];

    /**
     * If specified, the client only needs to refetch data related to this
     * thread.
     */
    threadId?: number;

    /**
     * If specified, the client only needs to refetch data related to this stack
     * frame (and the `threadId` is ignored).
     */
    stackFrameId?: number;
  };
}

export type InvalidatedAreas = 'all' | 'stacks' | 'threads' | 'variables'
    | string;

I'll have to look at InvalidatedEvent, but what you can do is send another Stopped event, and vscode will request the stack again

It looks like InvalidatedEvent is really only implemented for variables and watches? https://github.com/microsoft/vscode/commit/6980e4e26ed706e0d69b7fef0f088db625f96dad

I'll have to look at InvalidatedEvent, but what you can do is send another Stopped event, and vscode will request the stack again

thanks, this is the workaround I'm using now. The stopped event will refetch the "threads" and "stacks". However, the stopped event needs a “reason” parameter, which means we have to store the stopped “reason” of the current thread and reuse it in the new stopped event.

This bug has been fixed in the latest release of VS Code Insiders!
@testforstephen, you can help us out by commenting /verified if things are now working as expected.
If things still don't seem right, please ensure you're on version 3dea5cbbcb88d7f6dad71148f3d3f98b853ab836 of Insiders (today's or later - you can use Help: About in the command palette to check), and leave a comment letting us know what isn't working as expected.
Happy Coding!

You can use the verification steps from the OP in this issue: https://github.com/microsoft/vscode/issues/172544

/verified


Error message

Hi,
since a few days I get every 20 seconds the following error messages in the logfiles:
Quelle|                                                 Zeit | debug | Nachricht
boschindego.0 | 2022-05-12 12:22:11.344 | error | connection error - credentials wrong or no network?
boschindego.0 | 2022-05-12 12:22:11.161 | info | connect
I already restarted the instance, and the mower.
Is there anything I can do?
Thanks in advance.

I just uploaded a new version 0.9.17. Please uninstall and install the new version.

Where have you uploaded 0.9.17? Can't fid the new update.

You have to uninstall and manually install it from this repo. The same way you installed it the first time ( github -  user defined  )


[SPARK-14164][MLLIB] Improve input layer validation of MultilayerPerceptronClassifier

What changes were proposed in this pull request?
This issue improves an input layer validation and adds related testcases to MultilayerPerceptronClassifier.
-    // TODO: how to check ALSO that all elements are greater than 0?
-    ParamValidators.arrayLengthGt(1)
+    (t: Array[Int]) => t.forall(ParamValidators.gt(0)) && t.length > 1

How was this patch tested?
Pass the Jenkins tests including the new testcases.

Test build #54207 has started for PR 11964 at commit 8cd2d85.

Test build #54207 has finished for PR 11964 at commit 8cd2d85.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54207/
Test PASSed.

Merged build finished. Test PASSed.

Hi, @mengxr .
Could you review this PR please?

ok to test

Test build #54425 has started for PR 11964 at commit 8cd2d85.

Test build #54425 has finished for PR 11964 at commit 8cd2d85.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54425/
Test PASSed.

Merged build finished. Test PASSed.

Thank you, @MLnick .

LGTM, but I'll leave open for a day or so in case.

Sure! Thank you so much!

Merged into master. Thanks!

Thank you for merging, @mengxr !


Add DOI support

This change adds DOI dataset support.
Rationale
Metadata endpoint: /datasets/{datasetId}/files
The issue
Dataset ID is taken from passport visa value field and split by slashes /, then the last list element is taken as the dataset ID.

Passport visa value: https://ega-archive.org/datasets/EGAD1000 -> Dataset ID: EGAD1000
This works OK when dataset IDs don't contain a / in itself

DOIs are formatted like: https://doi.org/abc/123 where abc/123 is the complete dataset ID.

If this is split by slash / and the last list element is taken as the dataset ID, the resulting string is not the true dataset ID:

Passport visa value: https://doi.org/abc/123 -> Dataset ID 123 this is wrong and doesn't point to any dataset

Solution

Read passport visa value field as a whole without splitting

New issue and solution
We can't set the {datasetId} path parameter to https://doi.org/abc/123 as it breaks the endpoint pathing

Example: /datasets/https://doi.org/abc/123/files
We can get around this, by supporting both plain dataset id and base64 encoded strings in the path parameter

Example: /datasets/EGAD1000/files
Example: /datasets/aHR0cHM6Ly9kb2kub3JnL2FiYy8xMjM=/files

We then decode the base64 message to get the value https://doi.org/abc/123 which we match against passport visa values

Implications to other services

To keep old dataset IDs working in the database, the permissions service, e.g. REMS:

must send only the dataset ID part, and not an URL

Example: edit REMS resource to be EGAD1000 instead of https://ega-archive.org/datasets/EGAD1000

or alternatively: keep REMS resources as they are, and edit dataset IDs in the database to the full URL value

Example: https://ega-archive.org/datasets/EGAD1000 instead of EGAD1000, and in the future request them from /datasets/{datasetId}/files with base64 encoding on your download service

might be dropped in favour of neicnordic/sda-download

closing this. We will continue dev on https://github.com/neicnordic/sda-download for this feature.


Move all unit tests to single file

Historically assignments were about creation a tool and a unit test for it. However, now we can put all unit tests to the single unit, so they can be by single command.

duplicate #77


RPC error Stream Removed : Period of inactivity , Cloud run

Thanks for stopping by to let us know something could be better!
PLEASE READ: If you have a support contract with Google, please create an issue in the support console instead of filing on GitHub. This will ensure a timely response.
Please run down the following list and make sure you've tried the usual "quick fixes":

Search the issues already opened: https://github.com/googleapis/google-cloud-dotnet/issues
Search Stack Overflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+dotnet

If you are still having issues, please be sure to include as much information as possible:
Environment details

OS: Cloudrun/Self Hosted
.NET version: .Net core 3.1
Package name and version: Google.Cloud.Datastore.V1 (3.3) and Google.Cloud.Datastore.Admin.V1 (1.4), FirebaseAdmin 2.2

Steps to reproduce

After a period of inactivity , if try to call datastoretranaction.begintransaction -- get error stream removed.

Making sure to follow these steps will guarantee the quickest resolution possible.
Thanks!

Could you clarify exactly how long the "period of inactivity" needs to be before you see this reliably? I'd like to reproduce it, but if I don't know whether I need to wait 5 minutes or 5 hours, that's going to be harder.
I'm not surprised that the network connection gets dropped after some time, but I'd expect the gRPC transport to automatically reconnect it. I'll try to reproduce (just with a single API - Datastore as that's the one that you've reported as having a problem) but if you could provide more information that would be helpful.

Hello,
I would say its less than 15 minutes, and it occurs quite frequently for me.
On the same thing , get error -Deadline exceeded for batch operations, is there a way for us to increase timeout in c# side

Btw, please could you post your Dockerfile as well, or let me know which images you're basing your Docker image on? (Just because there may be some issues with some images but not others, e.g. for Alpine).

Hello,
The error comes in local mode also ie self hosted asp.net page
regards

What exactly do you mean by "self hosted"? Do you mean that if you start your ASP.NET Core app on your local developer machine, check that it's working, then leave it for 15 minutes, then refresh the page, then it will fail? The more precisely you can describe the problem, the better. I'm currently deploying a test app to Cloud Run, but if that turns out to be unnecessary, it would make things simpler.

I can't currently reproduce this in Cloud Run.
My code injects injects a DatastoreDb into DI via services.AddSingleton(DatastoreDb.Create("...", "..."));
On each request, it executes:
var transaction = _datastoreDb.BeginTransaction();
transaction.Rollback();

I've had this deployed in Cloud Run for several hours, hitting it periodically - sometimes waiting just a few minutes between requests, and sometimes for about half an hour. After inactivity, the time taken increases (which I suspect is due to gRPC reconnection) but I haven't seen any exceptions.
Any more information that would help me reproduce this?

Hello,
Here is a simple example . If you can help with how we can test if the connection with db is open or not, even that will help.
    static DatastoreDb db12;
    static void initializedb()
    {

        var googcred1 = GoogleCredential.FromFile(@"D:\firebaseDatabase\key\mydatastoreproj.json");
        string projid = "XXXXX";
        DatastoreClientBuilder clb = new DatastoreClientBuilder();
        clb.ChannelCredentials = googcred1.ToChannelCredentials();
        DatastoreClient cl = clb.Build();
         db12 = DatastoreDb.Create(projid, String.Empty, cl);
    }

    static void testConnection()
    {

        string entityid = "12345";
        Google.Cloud.Datastore.V1.Query q444 = new Google.Cloud.Datastore.V1.Query("MYTEST22");
        List<string> useridlist = new List<string> { "1", "2" };
        var f444 = Google.Cloud.Datastore.V1.Filter.And(Google.Cloud.Datastore.V1.Filter.HasAncestor(db12.CreateKeyFactory("SERVICEPROVIDERINFO").CreateKey(entityid)), Google.Cloud.Datastore.V1.Filter.Equal("userid", "1"));
        q444.Filter = f444;
        var mye444 = db12.RunQuery(q444).Entities;
        Console.WriteLine(mye444.Count);
    }

    static void insertdata()
    {

        string entityid = "12345";
        var parentKeyFactory = db12.CreateKeyFactory("SERVICEPROVIDERINFO");
        Key parentKey = parentKeyFactory.CreateKey(entityid);
        var keyFactory = new KeyFactory(parentKey, "MYTEST22");
        Key mykey = keyFactory.CreateIncompleteKey();

        Entity task22 = new Entity()
        {
            Key = mykey,
            ["mykey"] = "HELLOI",
            ["dt"] = "Personal",
            ["ptype"] = "12",
            ["userid"] = "1",
            ["done"] = false,
            ["priority"] = 2,
            ["description"] = "Learn Cloud Datastore",

        };
        var k222 = db12.Upsert(task22);

    }

    static void Main(string[] args)
    {
        initializedb();
        insertdata();
        Thread.Sleep(300000);
        testConnection();
        Thread.Sleep(300000);
        testConnection();

    }

Thanks, I'm going to run that in a minute. One thing you might want to be aware of, just to simplify your code, is the use of DatastoreDbBuilder:
db12 = new DatastoreDbBuilder
{
    CredentialsPath = @"D:\firebaseDatabase\key\mydatastoreproj.json",
    ProjectId = "..."
}.Build();

That avoids you having to load the credentials, manually, convert to channel credentials, create a DatastoreClient etc.

I've tried your code multiple times now (about 10) and it hasn't failed for me at all.
Does it always fail for you? Are you able to try it on a different network?
(The gRPC client keeps the network connection open, so there really shouldn't be any need to explicitly test it.)

Hello,
Yes, it always fails for me. Are you aware of any mechanism by which we can check the status of grpc client
regards

Not via the client libraries, I'm afraid - while the Grpc.Core Channel object does have a State property, we don't have any way of getting to that Channel through the multiple layers of abstractions (as we generally just get to a CallInvoker).
If you create the client with your own channel to start with, you could check the state that way. I wouldn't advise that in production code, but for the sake of diagnosing the problem, you can change your code above to:
// Static field so we can check the channel state
static Channel channel;

// ... in initializedb
var channelCredentials = googcred1.ToChannelCredentials();
channel = new Channel(DatastoreClient.DefaultEndpoint, channelCredentials);
db12 = new DatastoreDbBuilder
{
    ProjectId = projid,
    CallInvoker = channel.CreateCallInvoker()
}.Build();

// in testConnection and insertData
Console.WriteLine($"Channel state: {channel.State}");

I've done that logging the channel state at both the start and end of each method.
The channel state has typically been "Idle" at the start of the method and "Ready" at the end of the method.

Hello,
I just executed with the client initialized like above. Clinet state shown is printed as ready  but query failed after waking up after 5 minutes, with the same errror
grpc error
{"created":"@1648042734.429000000","description":"Error received from peer ipv6:[2607:f8b0:4002:c08::5f]:443","file":"......\src\core\lib\surface\call.cc","file_line":1070,"grpc_message":"Stream removed","grpc_status":2}
Stacktrace :
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter1.GetResult()    at Grpc.Core.Internal.AsyncCall2.UnaryCall(TRequest msg)
at Grpc.Core.Calls.BlockingUnaryCall[TRequest,TResponse](CallInvocationDetails2 call, TRequest req)    at Grpc.Core.DefaultCallInvoker.BlockingUnaryCall[TRequest,TResponse](Method2 method, String host, CallOptions options, TRequest request)
at Grpc.Core.Interceptors.InterceptingCallInvoker.b__3_0[TRequest,TResponse](TRequest req, ClientInterceptorContext2 ctx)    at Grpc.Core.ClientBase.ClientBaseConfiguration.ClientBaseConfigurationInterceptor.BlockingUnaryCall[TRequest,TResponse](TRequest request, ClientInterceptorContext2 context, BlockingUnaryCallContinuation2 continuation)    at Grpc.Core.Interceptors.InterceptingCallInvoker.BlockingUnaryCall[TRequest,TResponse](Method2 method, String host, CallOptions options, TRequest request)
at Google.Cloud.Datastore.V1.Datastore.DatastoreClient.RunQuery(RunQueryRequest request, CallOptions options)
at Google.Api.Gax.Grpc.ApiCall.GrpcCallAdapter2.CallSync(TRequest request, CallSettings callSettings)    at Google.Api.Gax.Grpc.ApiCallRetryExtensions.<>c__DisplayClass1_02.b__0(TRequest request, CallSettings callSettings)
at Google.Api.Gax.Grpc.ApiCall2.<>c__DisplayClass10_0.<WithCallSettingsOverlay>b__1(TRequest req, CallSettings cs)    at Google.Api.Gax.Grpc.ApiCall2.Sync(TRequest request, CallSettings perCallCallSettings)
at Google.Cloud.Datastore.V1.QueryStreamer.d__7.MoveNext()
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)    at Google.Cloud.Datastore.V1.LazyDatastoreQuery.GetAllResults()    at Google.Cloud.Datastore.V1.DatastoreDb.RunQuery(Query query, Nullable1 readConsistency, CallSettings callSettings)
at TestApp.Program.testConnection() in C:\Users\bhard\source\repos\TestApp\TestApp\Program.cs:line 49
at TestApp.Program.Main(String[] args) in C:\Users\bhard\source\repos\TestApp\TestApp\Program.cs:line 90

Okay, I'll ask a gRPC engineer to have a look. Have you had a chance to try this on a different network? I have a sneaking suspicion the problem may be a proxy that doesn't support HTTP/2 properly - that's what we've seen in similar situations.

Hello,
Proxy setting of my laptop is off ie no proxy is being used.
I tried in 2 places, same issue

Would it be possible to measure the time interval after which you get "stream removed" error? if the amount of time of inactivity after which you start seeing "stream removed" is consistent (e.g. after almost exactly 5 mins of inactivity) then the reason is most likely some component that's dropping your connection.
Can you try the following:

make a request
wait X time (e.g. start at a minute)
make another request, see if you got "stream removed"

If you do this many times for increasing values of X, it should be pretty clear whether your connection is being killed (by the endpoint or a proxy in the way) or if this is just random (which could mean anything, possibly flaky network).
Is there a way to set keepalives for the connection (I'm not familiar with the Google.Cloud.Datastore client).

Also, as always, you might get some extra useful info if you enable extra logging in gRPC:
https://github.com/grpc/grpc/blob/master/TROUBLESHOOTING.md
setting GRPC_VERBOSITY=debug and GRPC_TRACE=connectivity_state might come handy in this particular case.

@jtattermusch: The default keepalive is 1 minute for Google Cloud clients.
But this can be changed easily enough:
var client = new XyzClientBuilder
{
    GrpcChannelOptions = GrpcChannelOptions.Empty.WithKeepAliveTime(TimeSpan.FromSeconds(30)),
    // Add anything else here
};

I've shown how to set the channel options in the client builder... did you try that?

XyzClientBuilder is just a sort of placeholder for "the clientbuilder for whatever you're using". So in your specific case it would be:
db12 = new DatastoreDbBuilder
{
    ProjectId = projid,
    GrpcChannelOptions = GrpcChannelOptions.Empty.WithKeepAliveTime(TimeSpan.FromSeconds(30)),
    CredentialsPath = @"D:\firebaseDatabase\key\mydatastoreproj.json",
}.Build();

(Note that you wouldn't use this in the same code that creates the channel itself.)

Hello,
I just tried with timspan , still have the same error
D0329 09:14:15.804478 Grpc.Core.Internal.UnmanagedLibrary Attempting to load native library "C:\Users\bhard\source\repos\TestApp\TestApp\bin\Debug\netcoreapp3.1\runtimes/win-x64/native\grpc_csharp_ext.x64.dll"
D0329 09:14:15.835225 Grpc.Core.Internal.NativeExtension gRPC native library loaded successfully.
D0329 09:14:15.839485 0 ......\src\core\ext\filters\client_channel\lb_policy_registry.cc:42: registering LB policy factory for "grpclb"
D0329 09:14:15.839690 0 ......\src\core\ext\filters\client_channel\lb_policy_registry.cc:42: registering LB policy factory for "priority_experimental"
D0329 09:14:15.839785 0 ......\src\core\ext\filters\client_channel\lb_policy_registry.cc:42: registering LB policy factory for "weighted_target_experimental"
D0329 09:14:15.839853 0 ......\src\core\ext\filters\client_channel\lb_policy_registry.cc:42: registering LB policy factory for "pick_first"
D0329 09:14:15.839903 0 ......\src\core\ext\filters\client_channel\lb_policy_registry.cc:42: registering LB policy factory for "round_robin"
D0329 09:14:15.839997 0 ......\src\core\ext\filters\client_channel\lb_policy_registry.cc:42: registering LB policy factory for "ring_hash_experimental"
D0329 09:14:15.840086 0 ......\src\core\ext\filters\client_channel\resolver\dns\c_ares\dns_resolver_ares.cc:489: Using ares dns resolver
D0329 09:14:15.840827 0 ......\src\core\ext\xds\certificate_provider_registry.cc:33: registering certificate provider factory for "file_watcher"
D0329 09:14:15.840885 0 ......\src\core\ext\filters\client_channel\lb_policy_registry.cc:42: registering LB policy factory for "cds_experimental"
D0329 09:14:15.840936 0 ......\src\core\ext\filters\client_channel\lb_policy_registry.cc:42: registering LB policy factory for "xds_cluster_impl_experimental"
D0329 09:14:15.840987 0 ......\src\core\ext\filters\client_channel\lb_policy_registry.cc:42: registering LB policy factory for "xds_cluster_resolver_experimental"
D0329 09:14:15.841058 0 ......\src\core\ext\filters\client_channel\lb_policy_registry.cc:42: registering LB policy factory for "xds_cluster_manager_experimental"
I0329 09:14:15.937465 0 ......\src\core\lib\transport\connectivity_state.cc:182: ConnectivityStateTracker client_channel[0000013570D078F0]: get current state: IDLE
I0329 09:14:15.937782 0 ......\src\core\lib\transport\connectivity_state.cc:182: ConnectivityStateTracker client_channel[0000013570D078F0]: get current state: IDLE
I0329 09:14:15.937892 0 ......\src\core\lib\transport\connectivity_state.cc:159: ConnectivityStateTracker client_channel[0000013570D078F0]: IDLE -> CONNECTING (started resolving, OK)
I0329 09:14:15.953926 0 ......\src\core\lib\transport\connectivity_state.cc:182: ConnectivityStateTracker client_channel[0000013570D078F0]: get current state: CONNECTING
I0329 09:14:16.019515 0 ......\src\core\ext\filters\client_channel\subchannel.cc:1065: New connected subchannel at<PHONE_NUMBER>313C70 for subchannel<PHONE_NUMBER>CDA7D0
I0329 09:14:16.019697 0 ......\src\core\lib\transport\connectivity_state.cc:159: ConnectivityStateTracker client_channel[0000013570D078F0]: CONNECTING -> READY (helper, OK)
I0329 09:14:16.021941 0 ......\src\core\lib\transport\connectivity_state.cc:122: ConnectivityStateTracker client_transport[0000013571342678]: add watcher<PHONE_NUMBER>314C60
I0329 09:19:16.710023 0 ......\src\core\lib\transport\connectivity_state.cc:182: ConnectivityStateTracker client_channel[0000013570D078F0]: get current state: READY
I0329 09:19:16.730593 0 ......\src\core\lib\transport\connectivity_state.cc:159: ConnectivityStateTracker client_transport[0000013571342678]: READY -> SHUTDOWN (close_transport, OK)
I0329 09:19:16.730998 0 ......\src\core\lib\transport\connectivity_state.cc:167: ConnectivityStateTracker client_transport[0000013571342678]: notifying watcher<PHONE_NUMBER>314C60: READY -> SHUTDOWN
I0329 09:19:16.731565 0 ......\src\core\lib\transport\connectivity_state.cc:79: watcher<PHONE_NUMBER>314C60: delivering async notification for SHUTDOWN (OK)
I0329 09:19:16.738233 0 ......\src\core\lib\transport\connectivity_state.cc:159: ConnectivityStateTracker client_channel[0000013570D078F0]: READY -> IDLE (helper, OK)

Aha - I've just tried creating the channel manually and setting options like this:
var options = new List<ChannelOption>
{
    new ChannelOption("grpc.keepalive_time_ms", 10000),
    new ChannelOption("grpc.keepalive_permit_without_calls", 1),
    new ChannelOption("grpc.http2.max_pings_without_data", 1000),
};
channel = new Channel(DatastoreClient.DefaultEndpoint, channelCredentials, options);

At that point there are keepalives being sent, so I'll try to work out why they aren't happening when the channel is constructed via GAX.

Okay, it looks like there may be two issues here:

I wasn't aware that keep-alive was disabled for idle connections by default (grpc.keepalive_permit_without_calls); I'm not sure if that's changed over time
It looks like the DatastoreDbBuilder isn't passing the GrpcChannelOptions on to the DatastoreClientBuilder

I need to do further investigation of this, but hopefully I'll be able to figure out a workaround tomorrow.
(We may well do a new Datastore release for this, but probably not a new GAX release as we're currently focusing on the next major version of GAX, making it harder to do v3 releases. If that's the only way of solving the problem for you, that's one potential option though.)

Okay, I've looked into this more, and the two issues in the comment above are basically responsible for it. One is definitely a bug (which only manifests for APIs where a direct client is wrapped in another layer, as we do with DatastoreDb wrapping DatastoreClient); it's unclear whether the other should be a change to the default gRPC channel options. Both are in GAX, but there's a pretty simple workaround.
When you create the DatastoreDb, you'll need to create a DatastoreClient with custom gRPC options, then wrap that in a DatastoreDb. Here's some sample code:
// Force the gRPC channel to send keepalive messages even if there are not current
// data calls, and allow many pings between data calls. The default keepalive frequency
// (for Google API client libraries) should be fine.
var datastoreClient = new DatastoreClientBuilder
{
    CredentialsPath = @"D:\firebaseDatabase\key\mydatastoreproj.json",
    GrpcChannelOptions = GrpcChannelOptions.Empty
        .WithCustomOption("grpc.keepalive_permit_without_calls", 1)
        .WithCustomOption("grpc.http2.max_pings_without_data", 1000)
}.Build();
db12 = DatastoreDb.Create(projid, client: datastoreClient);

That should send a keepalive ping once per minute, which looks like it will be sufficient for your network.
@yashhema: Please run your tests using this code, and let us know if this solves the problem for you.

Hello,
I didnt get the error. But will it work , after 8 hours of inactivity or days of inactivity . It will be really nice , if we can get a method by which we can check the current connectivity state (database usually have a open method or check open, which checks from a pool , if connection is open or open it otherwise)
Also do we need to do something like this for other clients like : CloudTasksClient or Firebase admin client or SecretManagerServiceClient

I didnt get the error. But will it work , after 8 hours of inactivity or days of inactivity

It will send a keep-alive once per minute, and the number of times it will do that without any "real" calls between times is specified by the grpc.http2.max_pings_without_data option - so in the sample I've provided, it will do that for 1000 minutes which is just under 17 hours. But you could easily just make that a much larger value.

It will be really nice , if we can get a method by which we can check the current connectivity state (database usually have a open method or check open, which checks from a pool , if connection is open or open it otherwise)

This isn't really a database connection in the normal way of things though. I'm afraid we don't provide any such check, and we're unlikely to do so. If you really want a way of testing the connection, you could always send a simple RPC, e.g. a single key lookup. If it works, you're still connected - if it doesn't, it may be that it needed to reconnect; I'd suggest retrying once to see if it then works.

Also do we need to do something like this for other clients like : CloudTasksClient or Firebase admin client or SecretManagerServiceClient

For CloudTasksClient and SecretManagerServiceClient, yes, I'd expect you to need similar code. For the "Firebase admin client" please let me know exactly which NuGet package you're using. If it's FirebaseAdmin, I believe that uses HTTP rather than gRPC, so you wouldn't need to do anything.

if it doesn't, it may be that it needed to reconnect;

How do we reconnect , whats the process for that

I would expect sending another request to automatically reconnect.

Given that I believe we now have all the answers on this one, I'm going to close this issue now.


Volume Count mismatch

The volume count displayed on the datacenter dashboard doesn't match the count shown on SM landing page. The SM retrieves its count by calling the endpoint /api/storage/volumes?return_timeout=120&is_object_store=true. This task is to investigate the following two issues:

Are we correctly identifying root volumes? The REST API excludes root volumes, but it seems we might be marking additional volumes as root, resulting in the SM showing more volumes.

We need to include is_object_store in volume labels and adjust the count accordingly.

This is the detail about what is_object_store field and how it's being used/treated in volumes.

This is same object store(ONTAP S3) where we used to create/update the object store in SVM and then attached it to local tier or cloud tier and access the buckets belongs to that object store based on the user permission.

When we create object store in SVM either via running below CLI or via SM workflow, and later creating the buckets for them in SVM.

Each bucket would be associated with newly generated flexgroup volume (would contains metadata) and volume name starts with fg_oss_xxx.

So, they are listed under the volumes category but they do not store the storage data same as other volumes, only holds object store related stuff.

That's why SM do not show them in volumes page as it's not user created storage volume and any modification/deletion can't be possible by user until the bucket is existed in SVM.

SM object store detail in 154 system

Harvest detail for those volumes

Reference KB link where those fg_oss_ volumes can't be deleted due to bucket: https://kb.netapp.com/onprem/ontap/da/S3/Cannot_delete_volume_"because_this_volume_is_associated_with_object_store_bucket"****

Detail about the volume counts
Data for 154 system:

SM shows 204 volumes
private cli shows 212 volumes, out of them 182 non-root volumes, 28 svm root volumes and 2 node root volumes
public api shows 209 volumes, out of them 181 non-root volumes, 26 svm root volumes and 2 node root volumes

So, difference between 212 and 209 would be

2 LS volumes(astra_302_m1, astra_30_m1) --> It's Load Sharing and may not be for storage data
1 TMP volume(moved_parent_temp__363098__415085__dummy) --> It's Temporary volume

There are 5 object store volumes (starts with fg_oss_xxx). As explained above, they are listed but they are not for storage data.
Conclusion:
If we remove LS volumes, TMP volumes and Object store volumes from private or public api which gives exact 204 volumes which SM shows in volume grid.

As part of the fix, we will planning not to show LS, TMP type of volumes and object store volumes.
Potential places where this fix might be impacting dashboards.

Volume dashboard which shows list of volumes but count --> No impact due to fix

Aggregate dashboard which shows total volumes via aggr_volume_count_flexvol metric --> This would counted all the volumes including the constituents, but still count don't match. I will check further and update.
-- Need to check the name of this metric would be still valid ??

Snapmirror dashboard which shows count of snapmirror and list of volumes protected -->
-- Public api don't report LS relationships and private api reports them but without relationship_id.
-- As load sharing relationships don't have relationship_id(below screenshot), They are already ignored now.
-- So, No impact due to fix.

Datacenter dashboard  which shows count of volumes --> This count will be updated and will show same SM.

This is snapmirror detail in cluster, where rw root volumes load shared to ls volumes.

So, This is the detail of aggr_volume_count_flexvol metric value.
212 Total volumes in cluster: ,
120 flexvols (including 1 temp volume) in umeng_aff300_aggr2
80 flexvols in test1
2 node volumes
5 normal flexgroup
5 object store volumes (starts with fg_oss_xxx)
Exploring the flexgroup constituents level detail,
33 total constituents in umeng_aff300_aggr2
20 constituents from fg_oss_xxx flexgroups and
13 constituents from normal flexgroup
13 total constituents in test1
4 constituents from fg_oss_xxx flexgroups and
9 constituents from normal flexgroup
So, umeng_aff300_aggr2 contains 120+33=153 volumes, whereas test1 contains 80+13=93 volumes.
And our Harvest Aggregate dashboard would show the same volumes number

Note:
We should rename the metric name from aggr_volume_count_flexvol to aggr_volume_count.

Verified in 24.05 release branch at commit 74dcf38a872d2c38e633664314e0acc5b9f8d76b,
SM shows 273 volumes

Tested in both rest/zapi collector.
For Rest:

For Zapi: it can show 2 extra volumes which are object store created and our docs stats the same.


Create a react native sample app

Needs to get broken down into player and broadcasting parts

@suhailkakar Can you post links when this is complete?

Yes, I have completed it and shared the demo on Discord.

@suhailkakar can you link to this message? I never saw this or got any feedback from it

@0xcadams Shared with you on Discord as well :)


Enhancement

Use fdfind if distro is Ubuntu/Debian
This closes issue #9

Hello. Sorry for the late reply. I got an error where running your code on Pyrhon 3.8:
    distro = platform.dist()[0]
AttributeError: module 'platform' has no attribute 'dist'

Also please resolve the conflicts.


add gpg signing option

Thanks for the pull request, @jpmckearin.
Before I leave feedback on the changes themselves, I'd like to better understand your use case. I sign my commits, but I do not need to provide --gpg-sign to git commit; I have configured Git such that this is the default behaviour. Is there a reason you want to add --gpg-sign as a project setting rather than as a personal setting? If so, I'm interested to find out what it is. :)

@davidchambers I actually ended up going that route for the very reason that you cite. Hence the reason I did not originally make a pull request.

The only thing more satisfying than adding a nice feature is realizing it's not necessary to do so. :)


Create a web UI decision tree doc

Looking at this doc as a guide - https://docs.microsoft.com/en-us/azure/architecture/guide/technology-choices/compute-decision-tree
@justinyoo @IEvangelist

Dup of #17882 ?


Improved ability to add materials to the Deep Drill

Describe the feature you'd like
Currently it seems the deep drill recipe is hard coded to only read the first item in the results array.
https://github.com/Rearth/Oritech/blob/f8062dc79fb1e8a13126fd48f40989d6f89e66ef/common/src/main/java/rearth/oritech/block/entity/interaction/DeepDrillEntity.java#L169
If this read it as a weighted list instead, however, it'd be easier for pack devs to add other ores. I could, for example, add a chance for silver and lead in the platinum node as a way to make resources from other mods accessible through this mechanic
Describe alternatives you've considered
I could also accomplish this currently by either registering new blocks through kubejs or changing these recipes to drop a single generic 'raw ore cluster' that can then be processed with weighted outputs. But that's considerably more work as it involves creating new art assets
Additional context
No response

Hi, thanks for raising this issue. I'm not sure if I like the idea of getting possibly different resource from a specific resource node. Currently the blocks accepted as resource node are already defined as tags, so it would be possible to add new resource nodes by giving the blocks the appropriate tags and recipes. By also update the world gen files for the ore boulders you'd still get a clear indicator of which ores you'd find below the surface. Having a modpack add new ore nodes for other ores (with the recipes and world gen adjustments for that) would be more in line with the current Oritech approach.
The textures can be pretty easy to make, I just used the ore textures with a bedrock background instead.
However I do fully understand that this is a lot of additional work for modpack authors. If you'd prefer it, I can also easily make the change to accepted a weighted pool here. Let me know what you'd prefer here

I admit the weighted list was mostly about ease of implementation. There's also some seeming issues with actually updating the resource_node_rare.json file.  I still need to investigate further, but I think KubeJS is having issues because this is coming through architectury?
Anyway, if I simply insert a data pack with an updated file, I'm no longer able to create new worlds.
I do think a weighted list still has some merit for use in controlling rates by padding the list with other materials to make the rare material less common. Similarly it can be nice to unexpectedly get some rare materials from a more common node like Iron. But I also accept your reasoning of keeping it fixed 'what you see is what you get' as this is clearer for the player.
I'll keep attacking this from the current data pack angle and see where that gets me.

Ok, so I don't know what happened before. But this time I've gone through and modified the resource node jsons and it's working great. No issues creating new worlds and my changes are taking effect.
Still need to test that I've got everything in place. Not super proud of my artwork either, but it works :D


1.0.2 module resolve requires underbar for includePaths.

Just upgraded from 0.4, so I can get node-sass 3, but will need to drop back down.
I have bower install foundation to a vendor directory in my project. My app's stylesheet extends foundation.
./src/main/resources/scss/app.scss
./src/main/resources/vender/foundation/scss/foundation.scss

If i @import "foundation" ... (includePaths set) sass-loader looks for _foundation.scss instead of foundation.scss. (it should be using the name resolve pattern for each include path)
my grunt sass task completes just fine. (using the same node-sass lib 3.1.1)

Since sass-loader 1.0.0 you don't need to set the includePaths manually. It should be resolved like a webpack module.
The error about not finding _foundation.scss is misleading, I have to admit. But the sass-loader always tries to resolve the module without a preceding underscore first, then with underscore. So that's not the error (I probably have to rework the error messages).
Could you post your webpack.config.js?

The things in the vendor directory are not things I expect WebPack to resolve? So for my case, I would expect I would need to set the includePaths.
I've pared it down to the essentials:
'use strict';

var webpack = require('webpack');
var path = require('path');

var scssIncludes =
	'includePaths[]=' + path.resolve(__dirname, './src/main/resources/vendor/foundation/scss');

var root = path.resolve(__dirname, './src/main/js');

var commonLoaders = [
	{ test: /\.json$/, loader: 'json' },
	{ test: /\.js(x?)$/,
		loader: 'babel?optional=runtime'
	},

	{ test: /\.(ico|gif|png|jpg|svg)$/, loader: 'url?limit=100000&name=resources/images/[name].[ext]&mimeType=image/[ext]' },

	{
		test: /\.(eot|ttf|woff)$/,
		loader: 'file',
		query: {
			name: 'resources/fonts/[name].[ext]'
		}
	}

];

module.exports =
	{
		name: 'browser',
		output: {
			path: './stage/client/',
			filename: 'js/[hash].js',
			chunkFilename: 'js/[hash]-[id].js',
			publicPath: '/'
		},

		cache: true,
		debug: true,
		devtool: 'source-map',

		entry: './src/main/js/index.js',

		target: 'web',

		resolve: {
			root: root,
			extensions: ['', '.jsx', '.js', '.json', '.css', '.scss', '.html']
		},

		module: {
			loaders: commonLoaders.concat([
				{ test: /\.css$/, loader: 'style!css' },
				{ test: /\.scss$/, loader: 'style!css!sass?' + scssIncludes }
			])
		}
	};

Mhmm it could be that includePaths is broken since 1.0.0 because webpack is responsible for resolving paths (I still need to confirm that in a test though). However, it should work if you do it the webpack-way: Add ./src/main/resources/vendor/ to resolve.root and then write @import "~foundation/scss/foundation"

I would prefer to write the scss (and really, all my code) webpack-agnostically. Any updates?

I'm facing the same issue, watching this thread.

I would prefer to write the scss (and really, all my code) webpack-agnostically

That's a valid argument...
I'll have a look as soon as I found some time. Unfortunately I'm loaded with work... :unamused:. In the meantime, you can also take a look for yourself. The code is not complicated, but it requires some understanding about how to write loaders for webpack.

Hi guys,
@oopschen faced this same issue #110 and has provided at PR #113
The code seems sound but I don't have enough knowledge of the inner workings of the loader to say for sure that it would not have side effects.

@jhnns Is #113 viable?

It looks like the maintainers are having a holiday. I hope they can review all PR's soon.

Should be fixed with 1.0.3


"is covered by" is wrong

Running version 1.4.1 now.
This warning is giving false positives:

~$ is not covered by (?<![^/])\. nor ^node_modules/.
Most of those "entry is never used" warnings are wrong too actually.

Here's another one I found:

@mnpenner @jwfearn
Those rules are marked as covered because the rule that is marked as covering those subrules.
For example ~$ matches some files that ends with ~ character but they are located under the node_modules directory and nowhere else.
If you'll create some template foo~ file in the root directory - it will not be matched as covered by ^node_modules/ directory.
Can you please verify it ?

I created a new file called derp~ inside the root of my project directory, and that warning did indeed go away. However, I then moved the file into another ignored directory, and the warning did not re-appear to tell me it was covered by the other directory. Lastly, I removed ^node_modules/ and ~$ from my .hignore and then did hg st | grep '~' to see what files were being covered, and there does not appear to be any ~ files in my node_modules directory. find . -name *~ only finds my one derp~ file too, so I don't think I have any other ~ files. If that's the case, how can ^node_modules/ be covering it?

Can I ask you to check if this issue is still present in v2.1.1?

I don't seem to have any "is covered by" warnings anymore, but I have a lot of incorrect "entry is never used" warnings, which I've verified by removing the line and running hg stat again. The number of untracked files changes, so these rules are definitely doing something.

Every single line for me says "entry is never used."  This is in Rider 2017.2 EAP.  My .gitignore file is in the root of my project.  My project structure looks like:
|-- .git
|-- Help
|-- src
-- .gitattributes
-- .gitignore
-- Docs.shfbproj
-- README.md
I used direct paths to some directories and files, so there really is no reason for it.

@mnpenner find . -name *~ does not do what you think it does, because the *~ will be interpreted by the shell, not by find.
You should say find . -name "*~" instead.

@toolforger Thanks. That does indeed turn up a whole bunch of files under node_modules but it doesn't explain why this plugin thinks the ~$ rule is unused. Adding and removing that line from .hgignore changes the output of hg stat, so one way or another, it's used.

Fixed and released with v3.1.1


IRC Not Connecting

actions/ircaction.py
 -*- coding: utf-8 -*-
import socket

from pastepwn.util import TemplatingEngine
from .basicaction import BasicAction

class IrcAction(BasicAction):
    """Action to send an irc message to a certain channel"""
    name = "IrcAction"
    irc = socket.socket()

    def __init__(
            self=None,
            server=None,
            channel=None,
            port=6667,
            nick="pastepwn",
            template=None
    ):
        super().__init__()

        self.ircsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.server = server
        self.channel = channel
        self.port = port
        self.nick = nick
        self.template = template

    def perform(self, paste, analyzer_name=None, matches=None):
        """Perform the action on the passed paste"""
        text = TemplatingEngine.fill_template(paste, analyzer_name, template_string=self.template, matches=matches)

        self.ircsock.connect((self.server, self.port))
        self.ircsock.send(bytes("USER " + self.nick + " " + self.nick + " " + self.nick + "n", "UTF-8"))
        self.ircsock.send(bytes("NICK " + self.nick + "n", "UTF-8"))
        self.ircsock.send(bytes("JOIN " + self.channel + "n", "UTF-8"))
        self.ircsock.send(bytes("PRIVMSG " + self.channel + " " + text + "n", "UTF-8"))
        self.ircsock.send(bytes("QUIT n", "UTF-8"))

main.py
from pastepwn.actions import  IrcAction
irc_action = IrcAction(server="dallas.tx.us.undernet.org", channel="#beginner", port=6667, nick="pastepwn")

actions = [irc_action]

uplaykey_analyzer = UplayKeyAnalyzer(actions)
pastepwn.add_analyzer(uplaykey_analyzer)

it runs but gives this error
2020-02-29 10:57:54,818 - pastepwn.util.request - INFO - Using the following custom proxies: None
2020-02-29 10:57:54,820 - pastepwn.util.request - INFO - Using the following system proxies: {}
2020-02-29 10:57:57,670 - pastepwn.core.pastepwn - INFO - Your public IP is <removed>
2020-02-29 10:57:57,670 - pastepwn.core.pastepwn - INFO - Database provided! Storing pastes in there.
2020-02-29 10:58:19,092 - pastepwn.core.actionhandler - ERROR - While performing the action 'IrcAction' the following exception occurred: '[Errno 106] Transport endpoint is already connected'
2020-02-29 10:58:19,242 - pastepwn.core.actionhandler - ERROR - While performing the action 'IrcAction' the following exception occurred: '[Errno 106] Transport endpoint is already connected'
2020-02-29 10:58:20,018 - pastepwn.core.actionhandler - ERROR - While performing the action 'IrcAction' the following exception occurred: '[Errno 106] Transport endpoint is already connected'
2020-02-29 10:58:24,085 - pastepwn.core.actionhandler - ERROR - While performing the action 'IrcAction' the following exception occurred: '[Errno 106] Transport endpoint is already connected'
2020-02-29 10:58:25,060 - pastepwn.core.actionhandler - ERROR - While performing the action 'IrcAction' the following exception occurred: '[Errno 106] Transport endpoint is already connected'
2020-02-29 10:58:25,219 - pastepwn.core.actionhandler - ERROR - While performing the action 'IrcAction' the following exception occurred: '[Errno 106] Transport endpoint is already connected'

the user does not appear in the room

Hi @zespirit. After I pushed a commit (6007864) yesterday, the IRC feature worked semi-good. I had several issues with my local IRC setup and I spent roughly 15+ hours on delivering a high quality IRC solution. The commit 546b87f should fix this up. I will notify you when this code is pushed to production and when you can try it out. Would appreciate feedback.

No worries i have been following your changes to obverse and learn. I appreciate your knowledge in solving this issue. P.S. send me a MSG privately so i know where to send a donation. TY

Hi there. I just pushed the dev code to prod in #183.
Could you please check, if the new IrcAction works as expected for you? If not, feel free to create another issue.