Bugfixing primary repository detection as well as localization problems in several UnitTests

The two bugfixes in this pull request have been split up into two new pull requests, these are:

For the fixing of the localization problems in several UnitTests: https://github.com/microsoft/azure-pipelines-agent/pull/4216
For the fixing of the primary repository detection: https://github.com/microsoft/azure-pipelines-agent/pull/4217

The old text of this pull request follows for historical reasons...
Bugs fixed:

Localization problems in several UnitTests (Bug https://github.com/microsoft/azure-pipelines-agent/issues/3950)
Assignment of primary repository (Bug https://github.com/microsoft/azure-pipelines-agent/issues/3482)

Localization problems in several UnitTests fixed

Some UnitTests always used the point as the decimal separator in strings with numbers. However, this is different in different cultures (it's a comma in German culture for example) and the UnitTests failed on such systems. Adapted these UnitTests to either use numbers in strings with the decimal separator of the current culture or being able to handle numbers with a point as the decimal separator.
Some UnitTests checked for a correct system user name or if a specific system user name can be found. However, these system user names can be different from the English/Default name in German, French, Italian and Spanish. The checks for these user names were expanded accordingly to also check for the system user names of these other languages so that these UnitTests won't fail any more just because they run on a German, French, Italian or Spanish windows system.

Assignment of primary repository fixed
The setting of the RepositoryUtil.IsPrimaryRepository flag for the primary repository was not implemented correctly. It was always set for the repository that is first checked out. Now while this will normaly be the self repository, it doesn't have to be. In fact, if you really need to know the first repository that has been checked out, that information has its own job-flag/property called WellKnownJobSettings.FirstRepositoryCheckedOut. If the self repository is checked out as the second repository it should still be marked as the primary repository. The RepositoryUtil.IsPrimaryRepositoryName method shows the way here, always looking for the repository with alias "self", therefore clearly stating that the self repository is the primary repository. However, the RepositoryUtil.GetPrimaryRepository first uses the RepositoryUtil.IsPrimaryRepository flag to check for the primary repository and only if it doesn't find it set for any repository will look for the repository with the alias "self". So if the wrong repository has been set the IsPrimaryRepositoryName flag the RepositoryUtil.GetPrimaryRepository method will return the wrong repository. And the result of the RepositoryUtil.GetPrimaryRepository method and the RepositoryUtil.IsPrimaryRepositoryName method will not be consinstent though they should clearly provide they same kind of information according to their name.
This bug lead to some strange behaviour, for example:

The wrong repositoryUrl was saved in the trackingConfig/SourceFolder.json (not the one for the self repository, but the one for the repository that gets checked out first)
Build.Repository.LocalPath should (according to the code in the BuildJobExtension.IsCheckoutToCustomPath method) always point to the path of the self repository if a path was defined during checkout, except if it's the default path (say, "s/MyRepo" for MyRepo). That's exactly the case if you check the self repository out as the first repository (instead of the second or so). As soon as you define a path in the checkout step other than its default path, Build.Repository.LocalPath points to that path. Though if you specifically define the path of the self repository to be the default path (again say "path: s/MyRepo") and it it NOT the first one being checked out in a multi-checkout szenario, Build.Repository.LocalPath was suddenly pointing to the path of the self repository (so "s/MyRepo" in this example). This inconsistent behaviour is also fixed with this bugfix and if the checkout step for the self repository has the default path specified the build variable Build.Repository.LocalPath will always point to the default source directory path ("s"), no matter if it was checked out as the first repository or not.
If you check the self repository out first and to another path than its default path, Build.Repository.LocalPath will point to that path, as expected. But if you then changed the self repository to be the second repository being checked out and let it now specifically check out to the default path (say "s/MyRepo") by specifying that path during the checkout step, it then didn't update the Build.Repository.LocalPath variable (on its first run) which was still pointing to the old path (which doesn't even exist any more since the repository was moved). It seems to correct that path on the next run though. That behaviour is now also fixed with this bugfix.

I added UnitTests to test for the correct setting of the RepositoryUtil.IsPrimaryRepository flag in the future, even under circumstances which resulted in the wrong repository with this flag set in the past.
I also added UnitTests to test for the correct effects of this flag on the tracking configuration and Build.Repository.LocalPath build variable.

Hi @anatolybolshakov, do you need any help, information or changes so we can close this pull request?
Best regards, Markus

Well now that it was lying around for half a year we got merge conflicts of course... I will try and fix that, but can we maybe get this pull request closed afterwards? I'm a bit grumpy about this by now...

Merge conflict is resolved, marking @anatolybolshakov and @DaniilShmelev to please review and close the pull request before it's lying around for another half year and getting other merge conflicts, thx

Changed link to issue since it was wrongfully closed by a stale-bot

The two bugfixes in this pull request have been split up according to the suggestion of @ismayilov-ismayil into two new pull requests, these are:

For the fixing of the localization problems in several UnitTests: https://github.com/microsoft/azure-pipelines-agent/pull/4216
For the fixing of the primary repository detection: https://github.com/microsoft/azure-pipelines-agent/pull/4217

currently not closing this pull request just to make sure that somebody responsible may see this and know they can go to work on the new two pull requests :D

Closing the pull request now, the new ones are still open


Unable to run "Basic Usage" example with fresh install

I attempted to run the code shown in the Basic Usage section of the README. I followed the instructions to install torchquantum in a new python environment (I'm using 3.9.2).
However the code failed to run because the opt_einsum package was not installed. I installed the package with pip and everything ran fine.
I was about to open a pull request to add the missing package to your requirements.txt file, but then the code still failed to run during my testing. I looked at setup.py and found that requirements.txt is never read.
I could open a PR to have setup.py read from requirements.txt if you would like?

Hi Teague,
Sure, that will be great! Thanks a lot for your contribution!

Hello, I have installed opt_einsum with pip, but still could not found this module, do you have any idea?


Bump pillow from 8.0.1 to 9.0.1

Bumps pillow from 8.0.1 to 9.0.1.

Release notes
Changelog
Commits

updated-dependencies:

dependency-name: pillow
dependency-type: direct:production
...

Signed-off-by: dependabot[bot]<EMAIL_ADDRESS>

hello


Decouple IModelTypesGenerator from roslyn

https://github.com/aspnet/Scaffolding/blob/dev/src/Microsoft.Framework.CodeGeneration.Core/IModelTypesLocator.cs#L9
This code needs to be more generic not assuming roslyn anywhere. There should be a POCO type that is used in the interface and a roslyn implementation that can turn ITypeSymbol into the POCO type.

is this scheduled for a milestone?

Does this support using reflection for projects that are not compiled with roslyn but with a different compiler?

Affter examining the commit, I can still see that roslyn is assumed fully in the code (i.e it loads type using teh roslyn compilation object)

This bug is not really solved. Roslyn's ITypeSymbol is required to load types. So the decoupling is only half done.


[analyze/parse] Loudly warn if skiplist entry does not start with / or *

(While using --trim-path-prefix...) Right now, leaving an entry in the skiplist, such as -_deps/sources/* does only result in silently ignoring that line and still showing warnings from locations such as _deps/sources/fmt-9.1.0/src/blah.cpp. Changing the line to be -*/_deps/sources/* properly silences the findings from that file.
Perhaps it would be worthwhile that when loading the skiplist, a WARNING output is generated for lines that violate the required format.

(See contour-terminal/contour#1026 for the affected change in the skiplist we version there... previously, all third-party dependencies triggered warnings in Tidy, not just the ones we actually care about.)


feat(MountNode): add component

Fixes #2248.
Replaces #2394, #2255.
Core problem
Our Modal component makes too many things, the main problem is the management of classList on mountNode. It made too many problem for us, I thought about it and here is solution.
Solution
We need a declative way for classList management on mountNode, I've took a look on react-document-title and made similar component.

@levithomason ping

Released in<EMAIL_ADDRESS>


Google cloud logging type ERROR for regular training progress output

Expected Behavior
Google cloud logging for a custom training job should report training progress as type INFO.
Actual Behavior
Logs show type ERROR
Steps to Reproduce the Problem
I've been using the notebook in this repo: Training, Tuning and Deploying a PyTorch Text Classification Model on Vertex AI
In the section, "Run Custom Job on Vertex Training with a pre-built container" a package is created and uploaded to a bucket and the job is run. However when monitoring the logs, I get the following:
ERROR   2022-01-26 14:19:34 +1100       workerpool0-0    31%|???       | 5974/19120 [31:21<59:25,  3.69it/s]
ERROR   2022-01-26 14:19:41 +1100       workerpool0-0   Configuration saved in /tmp/xlm-roberta-large/checkpoint-6000/config.json
For some events, it shows:
INFO    2022-01-26 14:19:41 +1100       workerpool0-0   {'loss': 5.3862, 'learning_rate': 1.3723849372384938e-05, 'epoch': 3.14}

None of these log events are being explicitly logged by the training script. That suggests they are generated on the training service side.

From our initial investigation, it looks like these messages are coming from Hugging Face transformers and datasets packages that are writing messages to stderr. The Vertex AI training service is logging them as ERROR accordingly.

As this doesn't look to be a problem with the notebook, we will close the issue. Please feel free to reopen if you have more information. Thanks!


fix(yad): fix hash

Some issues with yad dependencies also after some testing.

LGTM, but requesting a review from @Henryws


Feature/converter/hint for service tasks

Improve hint for service tasks
Description

Mention the task type in the message for the conversion.
Additional context

Fixes #84
Testing your changes

See org.camunda.community.converter.BpmnConverterTest.testDelegateHint()
Types of changes

[ ] Bug fix (non-breaking change which fixes an existing open issue)
[x] New feature (non-breaking change which adds functionality to an extension)
[ ] Breaking change (fix or feature that would cause existing functionality of an extension to change)
[ ] Documentation update (changes made to an existing piece of documentation)

Checklist:

[x] My code adheres to the syntax used by this extension.
[ ] My pull request requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the Camunda Community Hub documentation.
[ ] I have read the Pull Request Process documentation.
[x] I have added or suggested tests to cover my changes suggested in this pull request.
[ ] All new and existing CI/CD tests passed.
[ ] I will /assign myself this issue, and add the relevant [issue labels] to it if they are not automatically generated by Probot.
[ ] I will tag @camunda-community-hub/devrel in a new comment on this issue if 30 days have passed since my pull request was opened and I have not received a response from the extension's maintainer.

This one will break on merging #91
I would suggest to rebase after #91 is merged and see if the problem persists.


Deleting a branch doesn't always delete associated display name

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

App Id
d1srck04ciclxn
Region
eu-west-1
Amplify Console feature
Manual deploys
Describe the bug
Deleting a branch in Amplify console doesn't seem to always delete the associated display name. This leads to and inconsistent state where a branch with the same name can never be created again.
Deleting the branch fails (as it doesn't exist indeed):
aws amplify delete-branch --app-id <app-id> --branch-name renovate/graphqlcodegenerator-monorepo

An error occurred (NotFoundException) when calling the DeleteBranch operation: Branch renovate/graphqlcodegenerator-monorepo not found.

Creating the branch fails as well:
aws amplify create-branch --app-id <app-id> --branch-name renovate/graphqlcodegenerator-monorepo

An error occurred (BadRequestException) when calling the CreateBranch operation: Failed to create branch. The display name renovate-graphqlcodegenerator-monorepo already exists for the app <app-id>.

This leaves us stuck in a state where we can never create the branch again, neither fully delete it.
I think it's a fairly recent issue (occurring in the recent weeks), haven't encountered it previously.
Expected behavior
When a branch doesn't exists, the associated display name shouldn't exist either.
Reproduction steps
I'm not sure how to reproduce it (can't easily reproduce it from the CLI) but we're seeing this when our Renovate bot creates the same-named branches again every now and then. In our CI (GitHub Actions) we simply call the above commands (aws amplify create-branch in a CI job run and aws amplify delete-branch after the branch has been merged).
The invalid state we're in can be seen on our account (app ID filled in above) for a couple of branches, including renovate/graphqlcodegenerator-monorepo.
Build Settings
No response
Additional information
Not sure if it's related to https://github.com/aws-amplify/amplify-console/issues/2213.

I'm not seeing the branch renovate-graphqlcodegenerator-monorepo for appId d1srck04ciclxn in eu-west-1 on our end.  We may need to forward this issue to the Amplify CLI team.

@ganipcanot Thanks for looking into it.

I'm not seeing the branch renovate-graphqlcodegenerator-monorepo for appId d1srck04ciclxn in eu-west-1 on our end.

Yes, that's correct. As I've described, the branch is deleted but I cant create a branch with that name as aws amplify create-branch --app-id d1srck04ciclxn --branch-name renovate/graphqlcodegenerator-monorepo outputs:
An error occurred (BadRequestException) when calling the CreateBranch operation: Failed to create branch. The display name renovate-graphqlcodegenerator-monorepo already exists for the app d1srck04ciclxn


Updated Series UID tag is not getting saved

Please see the code below. All other tags are updated and saved. Only updated (0020,000E) is not in the metadata of the saved files. I tried lower and uppercase "E". I'm relatively new to dicom and SimpleITK, perhaps I'm missing something obvious.
    # Get the list of files belonging to a specific series ID.
    series_IDs = sitk.ImageSeriesReader.GetGDCMSeriesIDs(data_directory)
    if not series_IDs:
        print("ERROR: given directory \""+data_directory+"\" does not contain a DICOM series.")
        sys.exit(1)
    series_file_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(data_directory, series_IDs[0])

    series_reader = sitk.ImageSeriesReader()
    series_reader.SetFileNames(series_file_names)
    series_reader.MetaDataDictionaryArrayUpdateOn()
    series_reader.LoadPrivateTagsOn()
    image3D = series_reader.Execute()

    idx = dir_name.rfind("/", 0, dir_name.rfind("/")) + 1
    out_dir = dir_name[:idx] + 'PROJECTED_' + dir_name[idx:]

    if not os.path.exists(out_dir):
        os.mkdir(out_dir)
        print("Directory " , out_dir ,  " Created ")
    else:
        print("Directory " , out_dir ,  " already exists")

    writer = sitk.ImageFileWriter()

    # Copy relevant tags from the original meta-data dictionary (private tags are also
    # accessible).
    tags_to_copy = ["0010|0010", # Patient Name
                    "0010|0020", # Patient ID
                    "0010|0030", # Patient Birth Date
                    "0020|000d", # Study Instance UID, for machine consumption
                    "0020|0010", # Study ID, for human consumption
                    "0008|0020", # Study Date
                    "0008|0030", # Study Time
                    "0008|0050", # Accession Number
                    "0008|0060"  # Modality
                   ]

    # Different times
    t = begin_time_index
    for images in processed_images:
        modification_time = time.strftime("%H%M%S")
        modification_date = time.strftime("%Y%m%d")
#         seriesID = '1.2.8<IP_ADDRESS>80043.2.1125.'+modification_date+modification_time+f'.{t:03d}'
        seriesID = f'{t+1:03d}'
        # Copy some of the tags and add the relevant tags indicating the change.
        # For the series instance UID (0020|000e), each of the components is a number, cannot start
        # with zero, and separated by a '.' We create a unique series ID using the date and time.
        # tags of interest:

        # Need to modify based on all seriesIDs, not only on the first one
        direction = image3D.GetDirection()
        series_tag_values = [(k, series_reader.GetMetaData(0,k)) for k in tags_to_copy if series_reader.HasMetaDataKey(0,k)] + \
                         [("0008|0031",modification_time), # Series Time
                          ("0008|0021",modification_date), # Series Date
                          ("0008|0008","DERIVED\\SECONDARY"), # Image Type
#                           ("0020|000e", "1.2.8<IP_ADDRESS>80043.2.1125."+modification_date+".1"+modification_time+f'.{t:03d}'), # Series Instance UID
                          ("0020|0037", '\\'.join(map(str, (direction[0], direction[3], direction[6],# Image Orientation (Patient)
                                                            direction[1],direction[4],direction[7])))),
                          ("0008|103e", series_reader.GetMetaData(0,"0008|103e") + " Projections"), # Series Description
                          ("0020|0011", f'{1001+t:04d}'), # Series Number
                          ("0020|0012", f'{1+t:04d}') # Acquisition Number
                           ]
        # Different angles
        i = 0
        for image in images:
            image = sitk.Cast(image, sitk.sitkInt16)
            for tag, value in series_tag_values:
                image.SetMetaData(tag, value)
            image.SetMetaData("0020|000e", seriesID)
            image.SetMetaData("0008|0012", time.strftime("%Y%m%d")) # Instance Creation Date
            image.SetMetaData("0008|0013", time.strftime("%H%M%S")) # Instance Creation Time
#             image.SetMetaData("0020|0032", '\\'.join(map(str, image.TransformIndexToPhysicalPoint((0,0,0))))) # Image Position (Patient)
            image.SetMetaData("0020|0013", f'{i+1:03d}') # Instance Number

            writer.SetFileName(os.path.join(out_dir,'reco.' + f'{t:03d}' + '.' + f'{i*angle_step:03d}' + '.dcm'))
            writer.Execute(image)
            i += 1
        t += 1

Hello @linako111,
You are missing one line of code immediately after creating the writer:
writer.KeepOriginalImageUIDOn()

Per the example on read-the-docs, this line tells the writer to "Use the study/series/frame of reference information given in the meta-data dictionary and not the automatically generated information from the file IO".

Thank you @zivy ! It works now.


Please specify that sharepoint admin rights are only necessary when using sharepoint content.

It's not clear that the sharepoint admin rights are only necessary if using sharepoint content. Otherwise this is not required.

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

ID: b1cdd9d9-15a7-1d3a-9b0c-f9e053713980
Version Independent ID: b1cdd9d9-15a7-1d3a-9b0c-f9e053713980
Content: Set up Microsoft Viva Learning in the Teams admin center
Content Source: Viva/learning/set-up-viva-learning.md
Service: viva
Sub-service: viva-learning
GitHub Login: @bhaswatic
Microsoft Alias: bhaswatic

Thanks for your feedback


$.fn.data quotes strings

Current behavior
$('#lol').data('whoah', 'yeah')
//

Expected behavior
$('#lol').data('whoah', 'yeah')
//

I was puzzled as to why my data selectors weren't working, and this seemed to be the reason.
Assuming this is actually an issue (and I'm not missing something) it seems the culprit is here: https://github.com/kenwheeler/cash/blob/612635aae630afe967569799607f5063bc290e8d/src/data/helpers/set_data.ts#L7
🙏

🤔 This is a little inconsistency with jQuery, however I think it allows us to ship smaller bundles, and generally attribute I think CSS selectors in the form of [data-foo="foo"] shouldn't be used because they are slow.
If we can align more with jQuery without sacrificing bundle sizes it'd be great, PR welcome.

Perhaps they shouldn't be used in CSS, but I think this will cause inconsistencies in JS as well that one wouldn't expect (I'm now using setAttribute in my project as a result of this interaction):
$('#foo').data('lol', 'yay')

// In DOM:

$('#foo').data('lol') == 'yay' // true
$('#foo')[0].dataset.lol == 'yay') // false
$('#foo')[0].getAttribute('data-lol') == 'yay') // false

(https://codepen.io/spenser/pen/NWKaqva)
In theory, just passing in the param value to the .setAttribute would just work in set_data.ts, but I'm sure there's a reason stringify exists here?
Mad respect for this project and the paranoia around bundle size ✊

In theory, just passing in the param value to the .setAttribute would just work in set_data.ts, but I'm sure there's a reason stringify exists here?

Yes, calling $0.setAttribute ( 'foo', {} ) gives you data-foo="[object Object]" which is not what you want.

Ahh yes ok, but I wouldn't expect that passing an object into data would work anyway (since data-attributes in the DOM wouldn't support it w/out (de)serialization).
Then, I discovered that jquery doesn't even manipulate the DOM with data attributes when you use .data(), so my expectations were wrong (you can pass like anything in).
Via jquery documentation:
Using the data() method to update data does not affect attributes in the DOM. To set a data-* attribute value, use attr.
Although this 'virtual data' prevents improper serialization and allows a wider range of objects being attached to a 'data' attribute, it forces you to use jquery to continue operations on this object, and doesn't reflect the changes in the DOM (which seems strange/bad, imo). I'm wondering if this was a holdover from a time before data attributes were widely adopted?
It also would seem to me that there's no way to know what your intention is if you're passing an object into .data as the second argument and the library should should reject it, however that would not be in parody w/ jquery either. The current implementation also doesn't have strict parody and has (imo) unintended consequences with the current form of DOM manipulation so it seems like a tough call.
🤷♂ 🤷♀ 🤷♂ 🤷♀ 🤷♂ 🤷♀ 🤷♂ 🤷♀ 🤷♂ 🤷♀ 😂
Let me know if I can help at all.

On a second thought I'm closing this as I don't think there's actually anything to fix.

Expected behavior
$('#lol').data('whoah', 'yeah')
//

That's not what jQuery does actually.

I'm wondering if this was a holdover from a time before data attributes were widely adopted?

Dunno, I think they are caching values on DOM nodes for performance (no serialization/deserialization cost) and for allowing any kind of values to be saved this way (functions etc. aren't JSON-serializable).
But I don't think the serialization/deserialization cost is actually meaningful as in pretty much all scenarios one wouldn't constantly read and write those attributes, nor it's useful in practice to be able to attach functions, regexes etc.
On the other hand what jQuery's approach break is compatibility with libraries like React, which IMHO is a more important issue. Also our implementation allows for smaller bundles.
I've updated the migration guide, explaining better the differences in $.fn.data between Cash and jQuery.


when --gpu-memory-utilization is set to 0.9, while actually  the fraction of  gpu memory utilization is more than 0.9

I don't know the vLLM internals well, but if you don't set worker-use-ray or engine-use-ray, some parts are not sent to ray.remote, and so gpu_memory_utilization is not used in these cases.
Maybe the gpu-memory-utilization could be more explicit about that but I'm not sure it's an issue btw.

+1 ， same question


Road lane detection

Description
Python scripts which detect road lanes both in an image and in video frames.
Fixes #250
Type of change
Choosing one or more options from the following as per the nature of your Pull request.

NOTE: These boxes can be checked using [X]

[ ] Bug fix (non-breaking change which fixes an issue)

[X] New feature (non-breaking change which adds functionality)

[ ] Documentation Update

Checklist:
Please tick all the boxes that are fulfilled by your Pull Request.

[X] I have named my files and folder, according to this project's guidelines.
[X] My code follows the style guidelines of this project.
[X] My Pull Request has a descriptive title. (not a vague title like Update index.md)
[X] I have commented on my code, particularly in hard-to-understand areas.
[X] I have created a helpful and easy to understand README.md, according to the given README_TEMPLATE.
[X] I have included a requirements.txt file (if external libraries are required.)
[X] My changes do not produce any warnings.
[X] I have added a working sample/screenshot of the script.

@adityagandhamal  please remove the videos, only keep working screenshots

Alright, i will do it.

@AdityaJ7 I have successfully removed the videos and replaced them with the working screenshots.

@AdityaJ7 I have removed all the video files.

@all-contributors please add @adityagandhamal for code


Make Karpenter be aware of failure-domain.beta.kubernetes.io/zone of workloads on ASGs

Tell us about your request
Karpenter should consider existing ASG nodes AZs prior to deploying new nodes for workloads that request topologySpreadConstraints / failure-domain.beta.kubernetes.io/zone
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
On clusters with mixed ASG nodes and Karpenter nodes, workloads will spin up on both EC2 groups.
ASGs tend to balance nodes among AZs.
For Deployments with topologySpreadConstraints we have noticed that workloads filling up the ASG nodes, will request Karpenter for more capacity and that while Karpenter will provide nodes in different AZs, it does not take in account existing ASG ones, and sometimes we get unbalanced workloads that have now some pods in the same AZ multiple times.
Are you currently working around this issue?
How are you currently solving this problem?
Additional context
failure-domain.beta.kubernetes.io/zone

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

I can't reproduce this and verified in our code that we don't filter by the node origin when counting topology domains.
Topology spread doesn't prevent multiple pods from the same deployment from getting scheduled in the same AZ multiple times, it only ensures that the skew between the domains doesn't exceed max-skew.  e.g. 6 pods with a topology spread and 2 per zone is valid.
The complication to this is that kube-scheduler is only aware of domains for which nodes already exist.  If you scale up a deployment with a zonal topology spread but there are only nodes in a single zone, then kube-scheduler isn't aware of the other zones and will put all of the pods on the existing nodes if they have capacity.  There is an upstream KEP to fix this at: https://github.com/kubernetes/enhancements/issues/3022

We handle topology spread constraints against arbitrary labels.  Is there a specific case where you are seeing Karpenter behave incorrectly?

I'll do a bit more testing and gather logs and see if I can reproduce it again.
thanks for all the info.


[BEAM-3565] Add FusedPipeline#toPipeline

The FusedPipeline is the physical plan corresponding with an original, logical Pipeline. Converting it back into a proto allows that plan to be manipulated with existing libraries, and for runners to interact with that plan for runner-specific implementation reasons.

Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a JIRA issue filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue.

[x] Run mvn clean verify to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

@bsidhom

Please address all the comments.

PTAL

Done to all


Change in method name for creating an issue on JIRA

The awesome JIRA tool created by @zywilliamli calls the create_issue() method to create issues, however, the actual method is issue_create().
Details in the Documentation here: https://atlassian-python-api.readthedocs.io/jira.html#manage-issues

good catch! should we add an integration test to make sure?

Sure. Will add it and update the PR.

@dev2049 Integration Tests would mean we'll have to manage JIRA API keys. Not sure how to do that. :/
Any thoughts?

@dev2049 Integration Tests would mean we'll have to manage JIRA API keys. Not sure how to do that. :/
Any thoughts?

integration tests aren't actually run in CI or anything at the moment. they just make it easy to test things locally. so as long as you had jira keys in your env and ran the integration test it would work. see the other tests/integration_tests/utilities/... for examples

@dev2049 I added the tests. Let me know if this is good to go.

Thanks for the pointer @dev2049 . I've added the tests. Let me know if this is good to go!

Thanks @varun1505!


Added .gitattributes to normalize CRLF hosts files

Addresses the following issue:
"Linebreaks (CR+LF) for Windows-Users #370"
https://github.com/StevenBlack/hosts/issues/370

That's one clever way to do it.

Makes it easier for Windows users to view it as well as submit PRs without getting loads of diffs every line ending. Since most devs here are Linux, the scripts don't really matter at this point. And any dev that is on Windows probably knows better anyway, so this wouldn't affect them.

Lol, I was just reading through the recent PR from gfyoung and he mentioned this exact thing with a diff to his PR while working on a different machine. I swear this was not a personal attack on him saying he should know better, I just realized he even said that.

This is just a quick reminder to @Tobias-B-Besemer that this PR is still open and I have not forgotten about my promise. I don't know if he was tracking on this, but I just wanted to make sure.


Extend test helper coverage; simplify CUB axis test

Split from #3740. This PR does two things:

Cover more valid contiguous axes for the tests: now negative axes are also tested.
Improve _can_use_cub_block_reduction(): the tuples out_axis and reduce_axis there are returned by _get_axis(), which makes the axes always sorted and positive, so we can simply join them as we do in cupy.cuda.cub._preprocess_array(). But, this also means that for its tests we need to convert the negative axes to positive ones. Thanks @grlee77 for suggestions!

The two files aside from the CUB tests where this for_contiguous_axes decorator is used are:
cupy_tests/math_tests/test_sumprod.py
cupy_tests/core_tests/test_ndarray_reduction.py
Those both pass without modification when I tested locally.

Jenkins, test this please.

Jenkins CI test (for commit b510b7a781132f412848d7e97be7341919f3b7b1, target branch master) succeeded!

Jenkins, test this please

Jenkins CI test (for commit b510b7a781132f412848d7e97be7341919f3b7b1, target branch master) succeeded!

Jenkins, test this please

Jenkins CI test (for commit 93839b19a60d4794ded9fa5395deb7f043d4ca5a, target branch master) succeeded!

The decorator for_contiguous_axes seems for a low-level checks, but negative axes are removed by normalizing at preprocessing. Why not manually convert axes as axis = [a - ndim for a in axis] in each test?

Hi @asi1024 there are many tests using this decorator and I hope to test them all. Like you said, in many cases it should be normalized during preprocessing, and adding negative axes to the decorator will ensure the normalization happens as expected.

We don't want to mix parameters for interface-level checks in to that low-level checks.

Do you mean that for_contiguous_axes is only for CUB tests?

Currently yes!

@leofang Sorry for my late response.
If this PR is only for the CUB test, could you make a fix in the CUB test code?

Sorry for dropping the ball, @asi1024. What fix did you have in mind?

Sorry for my late response.
Could you add negative_axis parameter to testing.product in TestSimpleCubReductionKernelContiguity?

Sorry for my late response.
Could you add negative_axis parameter to testing.product in TestSimpleCubReductionKernelContiguity?

Closing it as the main fix to _can_use_cub_block_reduction is in. The test improvement no longer seems important to me, but I am happy to reopen if there's a need.

Closing it as the main fix to _can_use_cub_block_reduction is in. The test improvement no longer seems important to me, but I am happy to reopen if there's a need.


[controller] Fix mismatch between hybrid version partition count and real-time partition count

Ensure real-time topic partition count matches hybrid version partition count
This fix addresses an issue where the real-time topic partition count did not align with the hybrid version
partition count, causing errors during hybrid store ingestion. The issue occurred in the following scenario:

Create a store with 1 partition.
Perform a batch push, creating a batch version with 1 partition.
Update the store to 3 partitions and convert it to a hybrid store.
Start real-time writes using push type STREAM.
Perform a full push to create a hybrid version with 3 partitions. This push fails because, after the topic
switch, real-time consumers cannot find partitions 2 and 3 due to the real-time topic having only 1 partition.

Root Cause:

In step 4, if the real-time topic did not exist, it was created with a partition count derived from the largest
existing version (batch version with 1 partition), which lead to mismatch.

Solution in this PR:

STREAM push type is now disallowed if there is no online hybrid version.
If an online hybrid version exists, it ensures the real-time topic partition count matches the hybrid version
partition count.
The requestTopicForPushing method no longer creates a real-time topic if it does not already exist.

Misc:

Refactor CreationVersion::requestTopicForPushing to make it easy for unit testing
Added similar checks for incremental push job type
Fix flaky blob transfer flaky tests
Stop creating real-time topics for region system stores like meta and PS3 in parent region
Logging changes around TS to make it easy to search

How was this PR tested?

WIP
Does this PR introduce any user-facing changes?

[x] No. You can skip the rest of this section.
[ ] Yes. Make sure to explain your proposed changes and call out the behavior change.

Moving to draft as I would like to move topic creation in addVersion and see how that works out

I agree with the solution "STREAM push type is now disallowed if there is no online hybrid version." However, I think, instead of returning error, we should create a new version (that would be of right partition count) and then let the push start.
If we do not auto create the version, we can at least tell the user to create a version, if we find store's partition count different from the VT's partition count.
If we look carefully, changing partition count without creating a version (even for batch stores) is similar to changing partition for a hybrid store; even for the batch stores, because batch stores can be changed to hybrid
I am skeptical about "The requestTopicForPushing method no longer creates a real-time topic if it does not already exist."; I believe in most of the cases, this is a benign operation and we should not prevent creation of the RT.

I agree with the solution "STREAM push type is now disallowed if there is no online hybrid version." However, I think, instead of returning error, we should create a new version (that would be of right partition count) and then let the push start. If we do not auto create the version, we can at least tell the user to create a version, if we find store's partition count different from the VT's partition count.
If we look carefully, changing partition count without creating a version (even for batch stores) is similar to changing partition for a hybrid store; even for the batch stores, because batch stores can be changed to hybrid
I am skeptical about "The requestTopicForPushing method no longer creates a real-time topic if it does not already exist."; I believe in most of the cases, this is a benign operation and we should not prevent creation of the RT.

we should create a new version (that would be of right partition count)
I think this may not be the safe in some cases (user wants to create a new version but keep old data).

If we look carefully, changing partition count without creating a version (even for batch stores) is similar to changing partition for a hybrid store; even for the batch stores, because batch stores can be changed to hybrid
I'm don't really follow the rest of the comment. Could you please elaborate? Thanks


middle mouse button to close window?

Please add click middle mouse button to close window.

The feature you requested is not hard to implement, but it's sort of weird for me to introduce a middle-mouse-to-close-window feature since it seems middle-mouse-to-close behavior only appears in multi-tab applications. Could you explain the use case?

The feature you requested is not hard to implement, but it's sort of weird for me to introduce a middle-mouse-to-close-window feature since it seems middle-mouse-to-close behavior only appears in multi-tab applications. Could you explain the use case?

I just want a replacement for FastStone MaxView.
It hadn't been updated for 2 years, and it doesn't support some of the filetypes.
Other than that, I think FastStone MaxView is THE most useful image viewer I've ever used.
So, middle-mouse-to-close is just one of the features I needed.
Thanks.

I downloaded a portable trial version copy of FastStone MaxView 3.3 and it seems it will try to switch to the fullscreen mode when MMB is clicked, and I didn't find any setting to let me set MMB to close the application, did I miss something? Thanks.
btw, for anyone who also needs this feature, please consider voting this issue with 👍 or by comment below so I could consider if I really need to add this feature :)

I downloaded a portable trial version copy of FastStone MaxView 3.3 and it seems it will try to switch to the fullscreen mode when MMB is clicked, and I didn't find any setting to let me set MMB to close the application, did I miss something? Thanks.

you need to use it to open a image, then it will work.

you need to use it to open a image, then it will work.

I did, but MMB clicking still won't close the window.
The action you marked in the red square says to launch in Full Screen instead of closing the window, did you mean use MMB click to enter full screen?

I did, but MMB clicking still won't close the window.

Open a picture with MaxView, MMB clicking to full screen then close the window.
Open agian, MMB clicking to see if it does what I said.

did you mean use MMB click to enter full screen?
No. You can see the video I recorded.

https://user-images.githubusercontent.com/7196377/148063415-2c2bb1ad-e997-430b-8c07-32220584a936.mp4

That's weird. Maybe because I'm using a trial version that doesn't come with such a feature. Anyway thanks for showing the actual behavior. Still, for anyone who also needs this feature, please consider voting this issue with 👍 or by comment below so I could consider if I really need to add this feature :)


ESM and node: protocol in imports

🐛 Bug Report
Jest can’t use node: protocol in ESM imports:
Cannot find module 'node:path' from 'protocol.test.js'

There is a discussion of using this protocol in Node.js docs.
To Reproduce
Steps to reproduce the behavior:
mkdir test && cd test
echo '{ "type": "module" }' > package.json
yarn add<EMAIL_ADDRESS>echo "import { join } from 'path'; it('tests', () => { expect(typeof join).toEqual('function') })" > no-protocol.test.js
echo "import { join } from 'node:path'; it('tests', () => { expect(typeof join).toEqual('function') })" > protocol.test.js
node --experimental-vm-modules node_modules/.bin/jest

Expected behavior
Tests should be passed without Cannot find module 'node:path' error.
envinfo

  System:
    OS: Linux 5.11 Fedora 33 (Workstation Edition) 33 (Workstation Edition)
    CPU: (8) x64 Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz
  Binaries:
    Node: 16.0.0 - ~/.asdf/installs/nodejs/16.0.0/bin/node
    Yarn: 1.22.10 - ~/.asdf/shims/yarn
    npm: 7.10.0 - ~/.asdf/installs/nodejs/16.0.0/bin/npm
  npmPackages:
    jest: ^27.0.0-next.8 => 27.0.0-next.8

Seem like it’s in #11331

@ahnpnl yeap, thanks. Hope to see it in the @next release soon.


add build config + keys

I don't know why the continuous-integration/travis-ci/pr is still showing up, you can ignore that one.

LGTM; @patrickeasters if you can just review the travis part it would be helpful. Thanks!

Reminder: we need to push our up to date code out to this repo from gitlab before merging anything.

@ryelo I just pushed up our most recent code to branch main and changed that to be our primary branch.  Could you rebase this pull request to that new branch?

Yep!


Homograph attack (Security)

Issue
This lib, even the Github viewer itself, is vulnerable to a homograph attack - meaning that we can leverage a seemingly innocent link e.g. http://ebаy.com to redirect users to actually http://xn--eby-7cd.com
Imagine if a user posts a link like this into a forum and has other susceptible users click on it.
Homograph normalized: http://ebаy.com (hover over the URL to see the browser decode the URL)
Actual equivalent IDN (punycode): http://ebаy.com
Further reading
https://en.wikipedia.org/wiki/IDN_homograph_attack
Potential remediation
https://en.wikipedia.org/wiki/IDN_homograph_attack#Defending_against_the_attack
We can leverage punycode (https://en.wikipedia.org/wiki/Punycode) to display the URL instead of the normalized URL. This could be a configurable option for the lib so the user of the lib can choose their risk profile. But I would recommend setting the use of punycode to true by default so we can avoid the security issue as described.
https://www.npmjs.com/package/punycode is a popular lib for JS.
Originally reported by @Mik317 to our security program

I believe the manual workaround is
import punycode from "punycode";
...
const componentDecorator = (href, text, key) => (
   <a href={href} key={key} target="_blank" rel="noopener">
      {punycode.toASCII(text)}
  </a>
);
...
<Linkify componentDecorator={componentDecorator}>
   ...
</Linkify>


Receiver glitching in certain areas

Hello!
I've noticed that in an area of my server, receivers just bug out and glitch the audio (like interrupting). If I go anywhere else in my world, they work just fine. I've yet to measure how big this area is. If you need anymore info, i'm up to providing.
Thanks!

That's strange, I'd be inclined to believe it's a performance issue with something in that area. Due to the way Analog works, if the server is lagging the audio will suffer. Is there anything in said area that could be creating lag for the server?
You could use Spark to profile the server to see if anything else is affecting it.

I'm very sorry, I actually apologize as I am actually unable to recreate the issue. The next day it was gone. If I find another spot I'll make sure to investigate more.


Fix cScreen.Fini() race condition (#158)

Closes #158. Also ought to solve rprichard/winpty#119 and junegunn/fzf#962, and maybe some other issues too.

Okay, now it should be good to merge. I accidentally left in a print statement but I just force-pushed it away (after some fumbling with Git 😛).

I will be reviewing this change shortly.  It seems like a bit of a deep and windows-specific issue (and I'm not really a Windows guy), so I want to make sure I fully understand before I merge.  Please bear with me, and thank you for your efforts here.

Hi, thanks for reviewing.
Sorry some of the code is a bit ugly - that actually is probably my fault because I'm new to Go. Regarding magic numbers, I did of course check the actual definitions, however I should probably move those into some constants.
As for the possibile race between the two events... Having thought about it, I think it should probably still work, but if there are numerous unprocessed key events then it could be a while before the cancellation event is received. That said, it would make more sense to swap the order around so that cancellation actually cancels reading instead of waiting for it to finish.
There is also another issue which I thought of after writing this initial version, which is that attempting to write to the scandone channel after an error occurs might cause a lockup if Fini isn't there to read from it. I'm not sure what the intended behavior is if scanInput exits early - does it just stop sending inputs? Should that be somehow handled better too?
Lastly, I'm also not sure what purpose that assignment serves; I'm pretty sure it's just showing up in the diff because of indentation. I didn't knowingly change any of the key handling stuff, unless I did something stupid - which I'll check along with everything else hopefully later today ☺

Just pushed some changes, which I think should address most of the review comments. Please let me know if anything else looks wrong. 😛

Sorry running behind things lately (different open source project sucking up all my time), but I'll get to this shortly.  Please ping me if you haven't heard back within 72 hours.

Hi, it's been another 6 days. I don't want to bother you if you're busy, although it would be nice to get this merged if you do get a moment. 😄

I will squash & merge.

Ah, brilliant! Thanks for merging! Also thanks @rprichard for figuring out the bug in the first place :+1:


fix(server): explicit signature for functional hostnames rule checks …

Fixes #862

Codecov Report

Merging #863 into master will increase coverage by 0.04%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #863      +/-   ##
============================================
+ Coverage     85.31%   85.36%   +0.04%
  Complexity      932      932
============================================
  Files           172      172
  Lines          2588     2590       +2
  Branches        404      403       -1
============================================
+ Hits           2208     2211       +3
  Misses          151      151
+ Partials        229      228       -1

Impacted Files
Coverage Δ
Complexity Δ

...y/rule/zalando/FunctionalNamingForHostnamesRule.kt
90.9% <100%> (+5.9%)
6 <3> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

👍

@tkrop It was more an interface/reflection problem. I could not think of a good general test for that. Let me know if you have some ideas!

:+1:


[Secure Consul Ph. 2] Modify tests/scripts for testing consul accesses in secure mode

For TAF testing consul accessed in secure mode properly, the TAF tests/scripts should be modified to read the consul token from the configuration file location set by ConfigAccessTokenFile for services to be tested.
Background:
The consul-tokens are generated by secureity-bootstrapper once both PRs are merged:

https://github.com/edgexfoundry/edgex-go/issues/3306
https://github.com/edgexfoundry/edgex-compose/issues/40
and consul tokens for each service will be stored in a file located in ConfigAccessTokenFile,  typically the file location is /tmp/edgex/secrets/<service-key>/consul-token, in which <service-key> is the unique service key name like the one defined in the go-mod-bootstrap clients;  eg.: for EdgeX core-data service, the service key is edgex-core-data.

Once the Consul is running in secure tightened mode, any calls to consul agent server will require a Consul token to access it.
Thus, for any TAF testing accesses to Consul will require to do so like the above-mentioned manner.
CC:
@lenny-intel
@cherrycl
@cloudxxx8

Hi @lenny-intel  I don't have the committer permission on this repo, so please arrange it accordingly in Security board. Thanks!

Hi @lenny-intel  this story seems no longer needed right? If so, we can close it.

Hi @lenny-intel this story seems no longer needed right? If so, we can close it.

No, but it needs to be modified. TAF scripts still need to access Consul, so how are they going the get the Access Token?

Hi @lenny-intel this story seems no longer needed right? If so, we can close it.

No, but it needs to be modified. TAF scripts still need to access Consul, so how are they going the get the Access Token?

Could we just use Consul's bootstrap ACL token instead of individual token; at least that way can get hold of token from the file?
If bootstrap is not enough, we probably need some more sophisticated ways to retrieve individual consul tokens from Consul via using bootstrap token in the TAF scripts since we don't have that API at all.

Could we just use Consul's bootstrap ACL token instead of individual token

@jim-wang-intel Yes, if that is on disk and can be used to access Console for any service. Please update issue description with details. THX!

Updated

@jim-wang-intel @lenny-intel I would like to confirm will Consul be inaccessible without ACL token in secure mode? Is this issue waiting for some issue or PR to be merged? The TAF scripts can access Consul without ACL token in secure mode so far, is it correct?

@jim-wang-intel @lenny-intel I would like to confirm will Consul be inaccessible without ACL token in secure mode? Is this issue waiting for some issue or PR to be merged? The TAF scripts can access Consul without ACL token in secure mode so far, is it correct?

Hi @cherrycl  the short answer is yes.  Once the default_policy of Consul config changes to deny, without an access token, you cannot get data out of consul at all. So far, I've not turned on that switch yet but it will be sometime next week I guess.   FYI, this is issue that I am currently working on: https://github.com/edgexfoundry/edgex-go/issues/3256  related to that.  So TAF would need to gran that token in order to access Consul in the case it talks to the consul itself in the testing script.


Revert "Bump codecov/codecov-action from 3.1.1 to 3.1.4"

Reverts getsentry/sentry-dart#1680

thought this could affect sentry-dio / analyze / package-analysis and sentry-logging / analyze / package-analysis failing tests, but it seems unrelated


Observation merging

As a project admin (maybe as a user?), I want to be able to "merge" observations that are of the same collection.  This can currently happen due to project recorders (typically project admins) creating an observation and then the creator of the observation later creating another observation for the same collection.  It can also happen with iNat imports.
I think the really right way to do this is to not to change the source observation, but instead to link observations into "observation groups" and then have a way to render them like an Observation, but with the ability to select between the group members for each value.  However, that's a pretty significant data structure change that likely has far reaching affects.

Are there specific examples of this coming out of NEMF?  I'm debating whether this is a real or imagined problem.


Fix minor typos in Spanish translation

@uzluisf did all of the heavy lifting, I just fixed some minor typos and evened out the wording.

Thanks! You too are the quickest to turn around these translations. I really appreciate it. Great work!


Add language settings to env output

We often receive issues that have problems with the language settings, see #6891. Users receive errors like �[33mencode': "\xE2" on US-ASCII (Encoding::InvalidByteSequenceError)�[0m, or other, similar ones. To be able to quickly triage/solve these issues, the value of these environment vars needs to be added to the output of fastlane env:

LANG=
LANGUAGE=en_US.UTF-8"
LC_ALL=en_US.UTF-8"

The value of all of these should be en_US.UTF-8 (or some other type of UTF-8, I guess), and the output should show some sign if they aren't (e.g. ✅  and ⛔ respectively)

ready for review: https://github.com/fastlane/fastlane/pull/6915


Download nuScenes dataset

Hi, Yichen, thank you for your great work!
I faced some question about downloading nuSecens dataset.
Since the official website from nuScenes covers many datasets.
Q1: In fugure1, I didn't know which dataset need to download in full dataset.
Q2: in figure2, Does the Metadata need to download in Test dataset? Will Metadata be used in Sparsefusion?
Looking forward to your reply!!
thanks, Howard

Thanks for your interest!
To reproduce our results on the validation set, you should download and unzip all the zip files for Trainval, including the meta data.
If you want to submit your results to nuScenes leaderboard, you should also download the Test dataset. I believe this would only be useful in the very late stage of your research project.

Thank you for your reply.
However, I found that nuScenes covers US and Asia. Do I need to download both regions? Or only one of them?

They are same data from different sources, so you only need to download one of them. For example, if you are in Asia, the Asia source may be faster to download.

Thank you for your help.
Sorry, I want to ask you some questions.

In paper had mentioned that "The multi-view sparse depth map is processed by the shared encoder to obtain the depth feature”，Obtaining the sparse feature from the sparse depth map is through sparse CNN or general CNN.?

When I have opened the terminal in the tool folder, enter this command "bash dist_test.sh ../configs/sparsefusion_nusc_voxel_LC_r50.py /home/lab528/Desktop/howard/SparseFusion/checkpoints/sparsefusion_voxel0075_R50_initial.pth 4 --eval= bbox"
but i got some errors about this:

I check the version in "pip list" 'mmcv-full' version is 1.2.7 and 'mmdet' version is 2.10.0, 'mmdet3d' version is 0.11.0.
I also check the "mim list", it just shows that mmcv-full 1.2.7 and mmengine 0.10.3, didn't show the mmdet in here.
I'm wondering if this error has something to do with not installing mmdet into mim.

It is general CNN.
I think this is not related to our project, also not related to mmcv, mmdet, mmdet3d, and so on. You may double check the compatibility of your CUDA, NCCL, and PyTorch.

Thanks for your information, I will try.
Bless you have a nice day.


Support for Sentora and VMWare ESXi

What is the idea?
I would love to see modules created to control Sentora [www.sentora.org], and to control ESX, similar to this module here from WHMCS.
https://github.com/Rynoxx/sentora-whmcs
The ESX module should allow people to control (reboot, restart, and reimage) their machines.
Why would this be beneficial
As most people use BoxBilling because of it's free nature, these other software platforms are free as well, allowing no overhead to occur for someone starting out in the hosting industry.
Modules for ESX and Sentora offer an advantage.
Oh and control modules for any accounts is a MUST. The less the customer has to login to a control panel, the easier it is for them to use.
Please also make it possible to temporarily disable caching, as during development it is a pain to go in and constantly have to invalidate the cache to see your changes.

ESXi is not free?
Sentora would probably be a fairly sensible addition though - however it has not been updated since 2020 so I don't think it's worth BoxBilling's core to implement this unless development were to restart.

Sentora v2.0 has been in active development for a while now. So it's still something that a lot of people use. I still think it would be worth the time to make it something BoxBilling is capable of communicating with.
http://forums.sentora.org/showthread.php?tid=12794&pid=33602#pid33602


Let string_split support splitting utf-8 characters

Describe the problem
Type of issue: feature request
The string_split function has (mostly) good behavior when splitting utf-8 strings by single-character delimiter, but fails to do it properly on null-width delimiter because of its documented behavior:

If delimiter is an empty string, each element of the source is split into individual strings, each containing one byte. (This includes splitting multibyte sequences of UTF-8.)

For models like seq2seq one needs a split function that can split utf-8 strings into individual characters that can be processed by model as units, also embeddings having properly of being easily joined as utf-8 strings.
Could tensorflow provide alternative implementation of string_split that is utf-8 - aware?

@ysuematsu Here's a string_split bug / feature request for you.

Any news on the subject ?

Added a preliminary utf8 support for string_split in PR #12971.

Nagging Assignee: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Is anybody still working on this?

@TTrapper The PR #12971 is still ongoing and mostly complete. However, it does not pass the Windows test case. Unfortunately I don't have a Windows machine (and Visual Studio) and haven't been able to obtain one for sometime. As a result I am not able to debug the failed test case. I will try to see if I could do something about it.

Nagging Assignee @yongtang: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

The PR #12971 is still pending. I was finally able to find a Windows VM image from Microsoft:
https://developer.microsoft.com/en-us/windows/downloads/virtual-machines
And it comes with Visual Studio 2017 already. However, when I tried to build TensorFlow with bazel on Windows, it just hangs at the dependency library stage. Will need more time to figure out if bazel is working on Windows or not.

Thanks for raising this issue @sheerun . Did you find any workaround that you can share please?

I don't rembember but I think I interlaced every character of input string with some character not present in string, and then used single character delimiter for splitting

Thanks for the suggestion. I had to do exactly what you've suggested and was searching for a better way.

Nagging Assignee @yongtang: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 16 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 47 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 62 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 77 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 92 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 107 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 122 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 137 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 152 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 167 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 182 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 197 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @yongtang: It has been 227 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Closing this feature request, as tf.string_split has been deprecated in TensorFlow 2.0. The new module tf.text might be of interest, if you require text preprocessing operations.


Add config option to knative-eventing to set the version

knative-eventing is missing a config option to specify the component version, similar to the one in knative-serving.

Note that when we resolve this bug, we should update also the get-images script to use the version config when gathering images.


peerDependencies warning about missing webpack

Installing v1.1.2 causes the following error:
npm WARN<EMAIL_ADDRESS>requires a peer of webpack@1 || 2 || ^2.1.0-beta || ^2.2.0-rc but none was installed.

I do not use babel or webpack (i use rollupjs).

1.1.3 has been published with the fix. Thanks for catching these and writing issues—much appreciated 👍


Improve styling of error panel

Hey all! One of the areas that I think takes some improvement is the error panel. Whenever I see it in a forum question or Github issue, it feels a bit scary with its dark background 😄. In conjunction with the light color fonts, they create a high contrast situation that is not preserved very well.
I think that the error panel should take an overall re-styling that will be closer to Cesium colors (green, blue) and improve the user experience for users. If you think that this is a good idea, I would love to help with this and submit a suggestion PR.

Great suggestion @bampakoa!  I don't think the themeing of that panel has ever been revisited, and it's definitely more functional than aesthetic haha.
If you want to take a stab at it, I would be happy to review a PR!  You can find the CSS here: https://github.com/CesiumGS/cesium/blob/master/Source/Widgets/CesiumWidget/CesiumWidget.css#L27

@hpinkos Thanks! Definitely I will do! How about exporting the showErrorPanel in a separate widget https://github.com/CesiumGS/cesium/blob/master/Source/Widgets/CesiumWidget/CesiumWidget.js#L606? Do you think this is feasible?

I'm not sure if that's entirely necessary since it's pretty much tied into the CesiumWidget.  I think it's a better idea to start with a PR with just the styling changes so we don't have to worry about waiting for feedback on the other changes holding up the PR from being merged

@hpinkos here is a preview of the styling https://bit.ly/2VBca55.
I would also prefer the following:

Add a close (x) button at the top right corner
Convert the OK button to Copy to copy the error to the clipboard

I like the idea of a copy - since that's often the common immediate next action, to report this error to someone (whether it's the application developer or opening an issue here).
I'm not sure about a close button or having "Ok" close the window - since that implies the application can carry on, but CesiumJS will only throw these errors when the application is an invalid state (as far as I'm aware). Sandcastle examples will use a window.alert for communicating if something is unsupported but when the application is allowed to carry on: https://sandcastle.cesium.com/index.html?src=3D Tiles Point Cloud Shading.html.

I'm not sure about a close button or having "Ok" close the window - since that implies the application can carry on

@OmarShehata
I agree with your point 😃 . This is a UX pattern that is generally followed in dialogs and pop-ups. It depends on the context of the error panel. If this is meant to be a dialog then maybe we should think to include both, a Cancel and a Close button.
Another aspect is that the user should be able to continue after an error occurs. Not necessarily in a fully functional state but maybe to reproduce a behavior 😉

@hpinkos it's been a while since this issue has been discussed. Do you have any additional thoughts on this?

One thing I wanted to respond to here:

Another aspect is that the user should be able to continue after an error occurs. Not necessarily in a fully functional state but maybe to reproduce a behavior wink

I actually forgot that the current CesiumJS error panel is dissmissable, I almost never dismiss it because I think it's almost always been a fatal error in my experience. This makes me think we should have separate types of errors in the library, like warning dialogs that are dismissable and fatal errors that are not.
CesiumJS generally uses console logs for "one time warnings". What we do in Sandcastle for "dismissable warnings" is just window.alert(). I think improving this may be a separate effort but just wanted to note this down here for context.

@bampakoa I like your suggestions in https://github.com/CesiumGS/cesium/issues/8739#issuecomment-614633118
I would probably make the panel red though, so it reads more like an error.  You can use #d69d93 for the background color and #510c00 for the text color

@OmarShehata If there's a runtime error that triggers this panel to appear, there should already be something logged to the console so we don't need to add anything else to handle that.

@hpinkos your suggestions look great! Thanks for the feedback 😃 I have made some adjustments that you can take a look here.
Notice that I have also added padding in the title of the error message so that it can stand up from the stack trace and be more easily distinguishable.

Looking good @bampakoa !
I would just make one change to make the whole panel the same color:

Could you open a pull request with your changes?

Sure @hpinkos


Job processing not happening.

worker.py
import logging

from kafka import KafkaConsumer
from kq import Worker

# Set up logging.
formatter = logging.Formatter('[%(levelname)s] %(message)s')
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
logger = logging.getLogger('kq.worker')
logger.setLevel(logging.DEBUG)
logger.addHandler(stream_handler)

# Set up a Kafka consumer.
consumer = KafkaConsumer(
    bootstrap_servers='<IP_ADDRESS>:9092',
    group_id='group',
    auto_offset_reset='latest'
)

# Set up a worker.
worker = Worker(topic='kq_topic', consumer=consumer)
worker.start()

producer.py
import requests

from kafka import KafkaProducer
from kq import Queue, Job

# Set up a Kafka producer.
producer = KafkaProducer(bootstrap_servers='<IP_ADDRESS>:9092')

# Set up a queue.
queue = Queue(topic='kq_topic', producer=producer)

def add(a, b):
  return a + b

# Enqueue a function call.
job = Job(func=add, args=[10,20], timeout=5)
queue.enqueue(job)  # timeout is still 5

when I run worker.py it hangs on
[INFO] Starting Worker(hosts=<IP_ADDRESS>:9092, topic=kq_topic, group=group)

when I run producer.py nothing happens.
Can you please help to get started.
Thanks.

Hi @sahilpaudel,
Have you checked that your Kafka (and zookeeper) and running, reachable? Have you checked the logging? Thanks.

Yes @joowani I have verified that and it is working and when start worker informational logs are appearing in the console.

Hi @sahilpaudel,
You would have to give me more details or something to help me reproduce the issue.

I just have above two code files and kafka server that is already started.
When I run python3 worker.py
I get Starting Worker(hosts=<IP_ADDRESS>:9092, topic=kq_topic, group=group)
When I run python3 producer.py nothing happens the code exits without print or doing anything.

Hi @sahilpaudel,
What version of Kafka and zookeeper are you using? Thanks.

Sorry I missed that @joowani
OS: macOS Catalina 10.15.6
Kafka : stable 2.6.0
zookeeper:  stable 3.6.1
Thanks.

Hi @sahilpaudel,
I was able to reproduce the problem. It was due to kafka-python (dependency of kq) changing its API.
I just released version 2.0.1. Could you please run pip install --upgrade kq and try again? Thank you.

Thank you @joowani
It is working now 👍


Some fixes for methanol

Report MeOH as Liquids|Hydrogen (Supersedes #152)
Correct typo in modify_prenetwork (Closes #237 )

Before asking for a review for this PR make sure to complete the following checklist:

[ ] Workflow with target rule ariadne_all completes without errors
[ ] The logic of export_ariadne_variables has been adapted to the changes
[ ] One or several figures that validate the changes in the PR have been posted as a comment
[ ] A brief description of the changes has been added to Changelog.md
[ ] The latest main has been merged into the PR
[ ] The config has a new prefix of the format YYYYMMDDdescriptive_title

merged via GitLens (bad idea, messed up history)


Adds CI for macOS.

This is great idea!

@mloskot ok, got things to pass! Wanna code review this PR?


incompatible wallets between neo-cli and neo-python

i've created wallets using both neo-cli and neo-python when trying to open the python wallet with neo-cli i get "error" and when trying to open the neo-cli wallet with python i get
"[E 180524 12:20:34 UserWallet:94] Could not build database table "account" already exists
[E 180524 12:20:34 UserWallet:336] Could not get key no such column: t1.Id
Could not open wallet: Password hash not found in database"

are you opening a .db or .json wallet file? guess both would not work right now, but just wondering if the old .db format is still in use.

db3.
python isnt able to open json at all

To the best of my knowledge there has never been the intend to have shared wallet db's. Each client can have there own depending on the clients implementation. However, to easily transfer from one client to another there is the NEP-6 standard for importing wallets. Unfortunately this is not yet supported as seen by the open issue #118
For now if you want to switch you'll have to export your WIF's (what people call private keys) and import them in a new or exisitng neo-python wallet. type help on the console for seeing the commands to create a wallet and import a WIF.


Put stuff here

To much Track, too little VAC.

Tasks regarding adding documentation to this repo are being tracked on our team's trello board: https://trello.com/b/SNMjNO8P/vac-benefits-directory
Closing this issue as it is redundant.


Only root route returns

https://netlify-express.netlify.com/ renders,
https://netlify-express.netlify.com/another returns a 404.
I've been trying to build a simple app using this as a boilerplate, and none of my defined routes work apart from /. Any ideas?

The root route is a somewhat hacky way to demonstrate the Express server works. You can reach the /another route by hitting it directly via https://netlify-express.netlify.com/.netlify/functions/server/another.

@neverendingqs Is there any way to route /.netlify/functions/server/another to /another? or maybe to map it to a subdomain?

I haven't had a chance to try it yet, but a rewrite rule might do the trick: https://www.netlify.com/docs/redirects/#rewrites-and-proxying

Add this to netlify.toml
[[redirects]]
  from = "/*"
  to = "/.netlify/functions/server/:splat"
  status = 200

Sadly, the redirect rules do not work. The curios thing is that they do work when I run netlify dev from the command line.
I've been trying to add a view engine for this express app, but I get a error similar to Error: Failed to lookup view "index" in views directory "/var/task/views". Any help please?

I agree this would be a lot more useful with redirects in place.

I have the same issue but only locally. When i deploy to Netlify the other routes is working fine but locally they don't work.
`
router.get('/', (req, res) => {
res.status(200).send("/")
});
router.get('/another', (req, res) => res.json({
route: req.originalUrl
}));
app.use(bodyParser.json());
app.use('/.netlify/functions/server', router); // path must route to lambda
app.use('/', (req, res) => res.sendFile(path.join(__dirname, '../index.html')));
module.exports = app;
module.exports.handler = serverless(app);
`
/another will not work locally. Locally it will always go to root path.
Any idea why? :)


feat: ordered read_postgres tables

massive WIP;
want to see if we can get something that resembles pushdown sorts into
data sources that can sort on their own, without rearchitecting
datafusion.
if this works, relevant group-by and sorts can stay streaming in DF
and take advantage of indexes in the upstream datasource.

Interestingly enough, this seems to have the desired behavior (returning results in the correct order), which is really cool.
Since we don't have a good way to assert about explain in SLTs (or anywhere else, I think?) I don't know if we have actually successfully exposed the fact that the the results will be ordered from the data source. If we don't do this DF will buffer all of the results to sort the (already sorted) data, which will be faster than having to sort the data, but still less than ideal.
The other big question that I think we should make sure to decide on before landing this (and duplicating it in other relevant data sources/table providers and table funcs) is the syntax.

We shouldn't expose a new dsl for datasource specific ordering. All pushdowns need to be handled in the optimizer.

So the optimizer, as I'm sure you know, doesn't pass sort information to table providers/data sources, so while I'm not wed to this particular approach, you're proposing something that isn't possible in datafusion at the moment. If you have a better idea for this I'd love to hear it.

So the optimizer, as I'm sure you know, doesn't pass sort information to table providers/data sources, so while I'm not wed to this particular approach, you're proposing something that isn't possible in datafusion at the moment. If you have a better idea for this I'd love to hear it.

It doesn't natively have any mechanisms to push down anything beyond slice, predicate and projections. This doesn't stop us for writing custom optimizer rules for pushing these down.
This is how cube does sort pushdowns (among others), and how datafusion advises handling these kind of specialized optimizations

So I think the syntax in the table function is probably wrong, but "just write an optimizer plan to solve this generically" is definitely at the very least "making the perfect the enemy of the good enough." I definitely think as an option in CREATE EXTERNAL TABLE (perhaps) it's more reasonable.
From an implementation perspective, implementing a physical optimizer pass, would (via it's own path) {maybe} end up constructing a table provider with roughly exactly the same code as the one here.
From an ergonomics perspective this isn't all together that different from the way that transactional systems require users to create indexes on their tables to support fast sort operations, and it wouldn't be reasonable for those systems to say "users shouldn't need an explicit syntax, the optimizer should be able to handle it." Similarly, such systems have some kind of HINT functionality, that let users explicitly indicate which indexes to use, in the case when the optimizer selects the wrong index (usually because optimizers don't have a great view into workload or data distribution,) and doing something like this (creating an ordered table) is a lot like a hint.
Thinking about it in these terms, pushing down sorts is the kind of thing that you'd really only want to do in some situations. While it'd be faster for some queries and some tables, if the tables weren't properly indexed, users might really not want the sort pushed down. This ends up not being so much about "how can we best optimize things" and more "how do users want [glaredb/etc] to interact with their databases," and the second part can't really be solved with optimizer abstractions.
Apart from all of this I think the core use case here is pretty valid, and I don't think we should just walk away from any user who wants to sort their data without table scanning their operational databases.

marking as draft as it's not actively waiting on review


Integration of whatsup as an additional method of use

Following our meeting with Twilio.
Please provide with a plan of integration directly to Twilio without Torus for adding additional signup/signin method VIA whatsup.
According to my research all of our top 15 countries are using whatsup.
Please elaborate in your plan the following -

Estimated time for the integration
maintenance of this integration
Will it require different flow as it will not be integrated to Torus

@Esfir-E
There's no possibility to create a login method not via torus without making us "custodians" which is out of the question.
It might be possible to use whatsapp as an alternative SMS service. similarly to how we login users via Torus using auth0 mobile verification.
this needs to be further discussed


test PR with Github API

Please pull this in!

Docs Build status updates of commit e7d4717:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

tutorial-manage-data-disk.md
:white_check_mark:Succeeded

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.

Docs Build status updates of commit 2f34651:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

tutorial-manage-data-disk.md
:white_check_mark:Succeeded

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.

Docs Build status updates of commit d949ae8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

tutorial-manage-data-disk.md
:white_check_mark:Succeeded

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.

Docs Build status updates of commit 9128ade:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

tutorial-manage-data-disk.md
:white_check_mark:Succeeded

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.

Docs Build status updates of commit 653f8ed:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

tutorial-manage-data-disk.md
:white_check_mark:Succeeded

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.

Docs Build status updates of commit 419628a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

tutorial-manage-data-disk.md
:white_check_mark:Succeeded

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.

Docs Build status updates of commit 6e22099:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details
Dependent Files

:x:Error

Details

[Error] Run script failed with no detailed information. Please retry building your content again. If the issue still happens, open a ticket in http://SiteHelp and include the error report for our team to troubleshoot

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.


strchr for less-than

hello!
could you please help me with implementation which can check a string for any char less-than specified char?
im trying to figure out myself based on the strstr() implementation but without lack, because I just have no any experience with SIMD :(
best!

solved using _mm_cmpestri() with _SIDD_LEAST_SIGNIFICANT | _SIDD_CMP_RANGES | _SIDD_UBYTE_OPS flags.


chore: remove parallelBuilds code because it is no need

Description

I found that parallelBuilds is no need.
The vite1.x use it because it use esbuild startService/stopService and vite should call stopService only after all the build finish.
Now esbuild has been remove the  startService/stopService API.
So these code is no need.
Additional context

What is the purpose of this pull request?

[ ] Bug fix
[ ] New Feature
[ ] Documentation update
[x] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the PR Title Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Ideally, include relevant tests that fail without this PR but pass with it.

This was already done at https://github.com/vitejs/vite/pull/11460 😬


netci.groovy changes for linux

Enable CI and Daily builds of Ubuntu Linux on the linux branch.
Builds using ./build.sh and tests with ./test/runtests.sh
Archives the BuildLinux/build.log

@dotnet-bot test ci please

@digitalinfinity I'm not sure if 14.04 is the latest we can use or not, and I'm not sure what version we'll actually see because of the latest-or-auto directive.
@mmitche Can you provide some details on that?

We can do better and use 16.04 directly. https://github.com/dotnet/dotnet-ci/blob/a3d2bb1fce6ebf3bf4d2de7f6ae17a3d07aaee57/jobs/generation/Utilities.groovy#L127

@dotnet-bot test ci please

@dotnet-bot test ci please

The info script will produce output like this:

==================================================

Number of processors (nproc):

1

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

Linux version (lsb_release -a):

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04 LTS
Release:        16.04
Codename:       xenial

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

Clang version (clang --version):

clang version 3.8.0-2ubuntu3 (tags/RELEASE_380/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

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

cmake version (cmake --version):

cmake version 3.5.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).

==================================================

@dotnet-bot test ci please

@dotnet-bot test ci please

@digitalinfinity ping - want to try bringing this in to see if it fits our scenarios?

Seems fine to me- not a groovy expert by any means, so if @mmitche is ok with this, I am too. I see the task name in this PR is " Microsoft_ChakraCore/linux/GenPRTest/generator_prtest"- is that expected?

Yes, that's generating CI tasks specifically for this branch. The PR checks for the original 12 flavors will still come from the master generator (to avoid duplication), bu the tasks generated by this one are for the specific PR needs of the master branch and for the daily builds. We saw the same thing when we enabled daily builds of the release/1.2 branch.

I pinged @mmitche for a sign off and he says it looks good. I'll merge this.


Key-Value Store del operation is not documented

Just realized that del(key) function for Key-Value Store is not documented in the API docs. We should add that as it's a fairly important functionality of KVStore :)

It is now documented


Add testcase to verify BIOS version

Adding testcase to validate https://github.com/openbmc/openbmc/issues/423

Use the latter version on the FW to test this code..  Just to validate the negative scenario as well when this BIOS version "" returns EMPTY


8.3 Breaking change

Prerequisites

[x] Checked that your issue hasn't already been filed by cross-referencing issues with the faq label
[ ] Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
[x] 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
[x] Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with: node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend that you not install Mocha globally.

Description
Not sure if mocha follows semver but #4543 introduced a breaking change as the version of yargs that was upgraded to does not support Node 8. Support was dropped in version 16.
Steps to Reproduce

Use Node 8
Try to run mocha

Expected behavior:
Mocha will run tests or show a warning of

Warning: Could not find any test files matching pattern: test
No test files found

if no test files are found
Actual behavior:
Mocha won't start when trying run with Node 8 and throws an error saying:

yargs parser supports a minimum Node.js version of 10. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions

Reproduces how often: [What percentage of the time does it reproduce?]
100%
Versions

The output of mocha --version and node node_modules/.bin/mocha --version: No output as it shows the yargs error, but I'm using version 8.3.0
The output of node --version: 8.4.0
Your operating system

name and version: MacOS
architecture (32 or 64-bit): 64bit

Your shell (e.g., bash, zsh, PowerShell, cmd): bash

I did not initially notice by grepping the changelog that version 8 support was dropped.


some mostly network related mappings

some notes:

the changes in packet methods (e.g. getType→getRenderType) are to accommodate for the general getType method in the Packet class (which gets the PacketType of this packet)
some names of packets in ..Types classes in n.m.n.packets don't make sense together with their string id
is the creation of a new n.m.network.phases package fine?
there are still a lot of unmapped fields in the n.m.network.phases package. These should probably be tackled next.

Hey! while we are working on networking mappings, ServerConfigurationPacketHandler is misnamed and misplaced. it should be called ServerConfiguationNetworkHandler and be moved to net.minecraft.server.network

The phases package seems good. Using S2C for class names but S2c for method names seems wrong; I think it should always be S2C (or C2S) and this should be considered an exception to the convention about acronyms.

some names of packets in ..Types classes in n.m.n.packets don't make sense together with their string id

I'm not sure what you mean by this, are the ids wrong/misleading?

here's an example:

Should also the phases package be renamed to phase to better fit the conventions?

Should also the phases package be renamed to phase to better fit the conventions?

oh you're right, it should


fix(subscriptions): ensure that manually added subscriptions work correctly in all deployments

Changes
This PR ensures that manually added subscriptions work in all settings. Currently it is only possible to add a subscription manually if you define the subscription_id value as "trial". This PR will mean that manually added subscriptions will not factor in the subscription id.
Another approach that I considered here was to have other, pre-defined constants that should be set as the subscription id in different scenarios.
Finally, this is a stop gap improvement until we can use license files to better handle on premise deployments.
How did you test this code?
Added / updated tests.

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

Comparison is base (73e866c) 96.02% compared to head (9e325ba) 96.02%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3182   +/-   ##
=======================================
  Coverage   96.02%   96.02%
=======================================
  Files        1062     1062
  Lines       32219    32260   +41
=======================================
+ Hits        30937    30977   +40
- Misses       1282     1283    +1

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

I think I understand this and I couldn't find any obvious problems with the code or tests so I'm approving it, but I'm just confused about how the change will rollout to our customers. Also, we'll need to add ./SAAS to at least staging and production, right?

Yep, this is done here.

Also, for working with things locally, we'd have to add one of the two paths to get subscription metadata outside of the free plan as well?

Yes, that's true, but I think that's a necessary step here. If it proves to be super painful then we can revisit and see if there's a way we can work around it for local development, but obviously for testing it's super easy to mock those util functions (we may even want to create fixtures to mock them).


Support the ability to set project name separate from project ID

the project blueprint currently treats project name and ID synonymously. This is unintended behavior since project ID is globally unique but display name does not need to be.

@williamjiuchengcai This is intentional and by design. As a best practice, it's clearer when the project name matches the project ID.
Of course, as with any kpt package, users can always modify it in-place if they want a display name that's different.


Improve service shutdown

Description
This PR incorporates several changes from the MNMG work into the current code base. The main goal of this PR was to eliminate the unnecessary warnings generated during tests. Such as:
E20230905 22:54:41.207543  6472 service.cpp:136] mrc::service: service was not joined before being destructed; issuing join

This PR includes the following improvements (all taken from MNMG):

Improved lifetime handling of Service classes
Required name for all Service classes to help with debugging
Improved thread naming to fit within the 15 character limit
Added service tests file for ensuring exceptions and state is properly handled

Checklist

[X] I am familiar with the Contributing Guidelines.
[X] New or existing tests cover these changes.
[X] The documentation is up to date with these changes.

Closing since these changes are included in #391 which has been merged.


[BUG] error thrown for incomplete profile but does not indicate which attribute is missing a value

Description
salt-cloud -m errors out based on an incomplete profile but does not indicate which attribute is missing a value.
Setup
/etc/salt/cloud.providers.d/azure.conf
/etc/salt/cloud.providers.d/azure.conf
azure-config:
  driver: azurerm
  subscription_id: <subscription>
  certificate_path: /etc/salt/azure.pem
  tenant: <tenant>
  client_id: <client>
  secret: <secret>
  location: southcentralus

/etc/salt/cloud.profiles.d/azure.conf
/etc/salt/cloud.profiles.d/azure.conf
azure-ubuntu:
  provider: tt-azure-config
  image: 'canonical|0001-com-ubuntu-server-focal|20_04-lts-gen2|latest'
  size: Standard_D2s_v3
  location: 'southcentralus'
  ssh_username: azureuser
  ssh_publickeyfile: /etc/salt/saltkey.pub
  virtual_network_name: EnterpriseMgmt-vnet
  subnet_name: default
  slot: production
  resource_group_name: EnterpriseMgmt

Please be as specific as possible and give set-up details.

[ ] on-prem machine
[ ] VM (Virtualbox, KVM, etc. please specify)
[X] VM running on a cloud service, please be explicit and add details (azure ubuntu)
[ ] container (Kubernetes, Docker, containerd, etc. please specify)
[ ] or a combination, please be explicit
[ ] jails if it is FreeBSD

Steps to Reproduce the behavior
(Include debug logs if possible and relevant)
Expected behavior
Either print minimum profile template or print the attribute that is missing the value
Screenshots
If applicable, add screenshots to help explain your problem.
Versions Report
salt --versions-report
(Provided by running salt --versions-report. Please also mention any differences in master/minion versions.)
Salt Version:
            Salt: 3004.2

Dependency Versions:
            cffi: Not Installed
        cherrypy: Not Installed
        dateutil: 2.7.3
       docker-py: Not Installed
           gitdb: 2.0.6
       gitpython: 3.0.7
          Jinja2: 2.10.1
         libgit2: Not Installed
        M2Crypto: Not Installed
            Mako: Not Installed
         msgpack: 0.6.2
    msgpack-pure: Not Installed
    mysql-python: Not Installed
       pycparser: Not Installed
        pycrypto: 2.6.1
    pycryptodome: 3.6.1
          pygit2: Not Installed
          Python: 3.8.10 (default, Jun 22 2022, 20:18:18)
    python-gnupg: 0.4.5
          PyYAML: 5.3.1
           PyZMQ: 18.1.1
           smmap: 2.0.5
         timelib: Not Installed
         Tornado: 4.5.3
             ZMQ: 4.3.2

Salt Extensions:
 saltext.azurerm: 1.0.0

System Versions:
            dist: ubuntu 20.04 focal
          locale: utf-8
         machine: x86_64
         release: 5.15.0-1020-azure
          system: Linux
         version: Ubuntu 20.04 focal```
</details>

**Additional context**
Add any other context about the problem here.

Please post the exact error received. Thank you!

[ERROR   ] There was a query error: No value for given attribute
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/salt/cloud/cli.py", line 319, in run
ret = mapper.run_map(dmap)
File "/usr/lib/python3/dist-packages/salt/cloud/init.py", line 2196, in run_map
output[name] = self.create(profile, local_master=local_master)
File "/usr/lib/python3/dist-packages/salt/cloud/init.py", line 1226, in create
output = self.cloudsfunc
File "/usr/lib/python3/dist-packages/salt/loader/lazy.py", line 149, in call
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3/dist-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, func_or_method, *args, **kwargs)
File "/usr/lib/python3/dist-packages/salt/loader/lazy.py", line 1216, in run_as
return func_or_method(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/saltext/azurerm/clouds/azurerm.py", line 1271, in create
vm_request = request_instance(vm=vm)
File "/usr/local/lib/python3.8/dist-packages/saltext/azurerm/clouds/azurerm.py", line 895, in request_instance
iface_data, public_ips, private_ips = create_network_interface(call="action", kwargs=vm)
File "/usr/local/lib/python3.8/dist-packages/saltext/azurerm/clouds/azurerm.py", line 711, in create_network_interface
subnet_obj = netconn.subnets.get(
File "/usr/local/lib/python3.8/dist-packages/azure/core/tracing/decorator.py", line 78, in wrapper_use_tracer
return func(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/azure/mgmt/network/v2021_08_01/operations/_operations.py", line 57344, in get
request = build_subnets_get_request(
File "/usr/local/lib/python3.8/dist-packages/azure/mgmt/network/v2021_08_01/operations/_operations.py", line 14408, in build_subnets_get_request
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, 'str'),
File "/usr/local/lib/python3.8/dist-packages/msrest/serialization.py", line 652, in url
output = self.serialize_data(data, data_type, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/msrest/serialization.py", line 760, in serialize_data
raise ValueError("No value for given attribute")
ValueError: No value for given attribute

Yeah, it doesn't look like there's any parameter verification in that section. We'll leave this open so we can build in that error reporting.
In the meantime, the following parameters in your profile need to be changed:
virtual_network_name > network
subnet_name > subnet
resource_group_name > resource_group (or network_resource_group if in a different rg than the rest of your resources)
They don't track the SDK names for the parameters... so that might be another thing we want to standardize.


import

:white_check_mark: Build TheIdServer 1.0.0-export-import1-0072 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/000a3813dd by @aguacongas)

:white_check_mark: Build TheIdServer 1.0.0-export-import1-0073 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/c2d3d52fa8 by @aguacongas)