Error message "Call to undefined method Deployer\Host\Localhost::stage()"

Deployer version: v7.0.0-beta.23
Deployment OS:Amazon Linux release 2 (Karoo)

Hi. I am using laravel8.
I updated the deployer from 6.8 to 7, and when I tried deploying in the staging environment, I got the following error and could not deploy.

$ vendor/bin/dep deploy staging -vvv
Error  in deploy.php on line 33:
Call to undefined method Deployer\Host\Localhost::stage()
#0 /var/www/my-progect/vendor/deployer/deployer/src/Importer/Importer.php(44): require()
#1 [internal function]: Deployer\Importer\Importer::Deployer\Importer{closure}()
#2 /var/www/my-progect/vendor/deployer/deployer/src/Importer/Importer.php(53): call_user_func()
#3 /var/www/my-progect/vendor/deployer/deployer/src/Deployer.php(299): Deployer\Importer\Importer::import()
#4 /var/www/my-progect/vendor/deployer/deployer/bin/dep(105): Deployer\Deployer::run()
#5 {main}

In deployer.php, line 33 looks like this.
localhost('local-staging')     ->stage('staging')     ->set('branch', 'master')     ->set('deploy_path', '/var/www/staging.{{application}}');
I did not see such an error in 6.8. Is there a mistake in my writing?

Call to undefined method Deployer\Host\Localhost::stage()

I think this is a problem.
Please follow guide on https://github.com/deployphp/deployer/blob/master/docs/UPGRADE.md to upgrade from 6 to 7.


Use RestartPolicy: Never for the jobs

With RestartPolicy: OnFailure new pods are not created[1], but the containers in esiting pod are restarted. We were using RestartPolicy: Never with openstack-ansibleee-operator. This was changed when we switched to drop it's usage.
[1] https://kubernetes.io/docs/concepts/workloads/controllers/job/#handling-pod-and-container-failures

recheck

I think you'd have to rebase to get https://github.com/openstack-k8s-operators/openstack-operator/pull/1084 ?

I think you'd have to rebase to get #1084 ?

I think we pull the PR on top of latest main in jobs.


Fix multi-harts program generation with PMP enabled

update #713

Excuse me again.
I modified the src/riscv_asm_program_gen.sv based on your file.
But when setting riscv_core_setting.sv/bit support_pmp = 1, it has the following error:
/home/suzw/toolchain/install_multilib/lib/gcc/riscv64-unknown-elf/9.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/cc4kMbgD. o: in function .L0 :
/home/suzw/toolchain/install_multilib/lib/gcc/riscv64-unknown-elf/9.2.0/../../../../riscv64-unknown-elf/bin/ld: (.text+0x120d2 ): undefined reference to main
collect2: error: ld returned 1 exit status.
Am I missing something ?
Thanks.


Angular 10 support ?

Can this directive be converted to a component? I really like the angularJS version and would like to continue using in latest angular version.

See post in #126
There is still a bit of a research and work to be done. Since others have made similar inquiries I will start getting the research and initial efforts underway. Gonna close both this and #126 as they are effectively duplicates of #110


feat: Merge 0.16.1

merge ledgetech/lua-resty-http 0.16.1 to api7/lua-resty-http
refer to https://github.com/ledgetech/lua-resty-http/releases/tag/v0.16.1
Should I increase version from 0.1.0 to 0.1.1 ?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 5 committers have signed the CLA.:white_check_mark: nanamikon:x: pintsized:x: bootjp:x: Tieske:x: InvizoryYou have signed the CLA already but the status is still pending? Let us recheck it.

CLA check may not pass，  how to fix it？

Should I increase version from 0.1.0 to 0.1.1 ?

I will vote for 0.2.0

CI is broken?


refactor: api models, update naming

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


[monitor] update to latest OTEL

Packages impacted by this PR

@azure/monitor-opentelemetry
@azure/monitor-opentelemetry-exporter
@azure/opentelemetry-instrumentation-azure-sdk

Issues associated with this PR

#29972
#29971
#29970
#29969
#29968
#29967
#29966
#29965
#29964
#29963
#29962

Describe the problem that is addressed by this PR
What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
Are there test cases added in this PR? (If not, why?)
Provide a list of related PRs (if any)
Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[ ] Added impacted package name to the issue description
[ ] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[ ] Added a changelog (if necessary)

Thanks for the upgrades @mpodwysocki! Seems that there are some new api that we need to implement for our TestSpan?

Thanks for the upgrades @mpodwysocki! Seems that there are some new api that we need to implement for our TestSpan?

@jeremymeng already fixed


ION Reads & Writes

Support for reading and writing ION docs.
Should uptake the work in the SSI SDK:

https://github.com/TBD54566975/ssi-sdk/pull/307
https://github.com/TBD54566975/ssi-sdk/pull/318

Tasks

[x] Implementation of the MethodHandler Interface
[ ] Expansion of the API to support update, deactivate, and recover operations

Partially done in #370


@shopify/dates formatDate is broken for serverside rendering

Overview
I found a weird issue with @shopify/dates
Node only supports the en locale so if you use formatDate with serverside rendering it always gives you the en date. If you nav to the same component from elsewhere, the client-side rendering will localize it properly.
Jason Godson:

I think we may need to make sure we build node with --with-intl=full-icu It seems to be the default now in 13, but 10.x is small-icu

Consuming repo
Shopify/web

From the library perspective this is the way it is suppose to work.
In order to get the functionality you are looking for with node, included https://www.npmjs.com/package/full-icu for node version < 13. This is included for node version >=13.


docker-compose up goes into an infinite loop on Docker Desktop for Windows 10 Pro

What's going wrong?
When I do docker compose up the containers start, but the "web_1" container goes into a non-ending loop repeating
web_1            | Postgres is ready! ✨ 💅
web_1            | /usr/bin/env: ‘python\r’: No such file or directory
web_1            | Postgres is ready! ✨ 💅
web_1            | /usr/bin/env: ‘python\r’: No such file or directory
windows-docker-test_web_1 exited with code 127
web_1            | Postgres is ready! ✨ 💅
web_1            | /usr/bin/env: ‘python\r’: No such file or directory
windows-docker-test_web_1 exited with code 127
web_1            | Postgres is ready! ✨ 💅

This does not happen on a Linux Docker host, and I have a fix!
How can the cookiecutter-django-rest team reproduce the problem?

Get a Windows 10 Pro system and install Docker Desktop. I've heard reports this also happens with the VirtualBox "Docker Toolbox" distribution but I only have the current one.
Install Git for Windows and Python. I use Anaconda 3 but this isn't a Python problem.
Create a virtual environment and install cookiecutter. Again, I used conda and installed cookiecutter from the conda-forge channel. Version is

Cookiecutter 1.7.0 from C:\Users\znmeb\miniconda3\envs\cookiecutter\lib\site-packages (Python 2.7)

Create a project scaffold
cd into the project and type docker-compose up.

Is this a problem with a fresh install of the project?

[ x] Yes

OK ... the cause is that Git for Windows checks text files out with a CRLF line ending code by default. This is fine on Windows but when those files get sent to a Docker container the Linux shell interpreter in the container may not be able to interpret them correctly. That's what's happening here with manage.py.
So you need a .gitattributes file in the repository that specifies checking out all text files destined for a container with Unix line endings (LF). See https://help.github.com/en/github/using-git/configuring-git-to-handle-line-endings for the documentation.

Here's where we ran into it - our .gitattributes file works: https://github.com/Pand-Aid/pandaid-api/issues/4

Hey @znmeb, thanks for opening an issue! Also, I love your Pand-Aid project! 💖
You're right that you'll run into LF vs CRLF issues if you're working in miss matching environments between the host and your docker container. For your case, you can configure  git to use LF globally.  That way all of your projects that use containers will "just work" out of the box. Having this set correctly is table stakes for working with docker in any project on windows.
This my preferred solution rather adding a .gitattributes file because it adheres to this project's mantra which is to have the slimmest possible boilerplate possible. This isn't an issue with the project that needs to be patched, but rather an issue with an individual's environment setup.
Again, thanks for contributing an opening up this issue. It's great that we have this documented if someone runs into this again.

I may add that changing the manage.py from CRLF to LF worked for me.


remove extra word

unless i'm misunderstanding what this is trying to say, i think this makes more sense without the word do.

Oops, you're right, thanks!

Oops, you're right, thanks!


Add BatchNorm translator for caffe implementation

This is not an elegent implement, but it works.

While this change to the translator, allows the translator to succeed, the translated networks will not load due to a protobuf violation.

Thanks for add BatchNorm to caffe_translate. But it doesn't work for me when I tried to translate my .prototxt and caffemodel to caffe2. here is the prompt:
INFO:caffe_translator:Translate layer conv1/7x7_s2
INFO:caffe_translator:Translate layer conv1/relu_7x7
INFO:caffe_translator:Translate layer pool1/3x3_s2
INFO:caffe_translator:Translate layer batchNorm-1
Traceback (most recent call last):
File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "caffe2/build/caffe2/python/caffe_translator.py", line 646, in
caffenet, caffenet_pretrained, is_test=True, input_mean=input_mean
File "caffe2/build/caffe2/python/caffe_translator.py", line 157, in TranslateModel
return TranslatorRegistry.TranslateModel(*args, **kwargs)
File "caffe2/build/caffe2/python/caffe_translator.py", line 128, in TranslateModel
assert pretrained_net.layer[pretrained_layers_index[0]+1].type == "Scale"
AssertionError


test: remove deprecated_create_deploy_test_state util

Part 2 is a bit more complicated.

This change is

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

Project coverage is 70.15%. Comparing base (bca62d6) to head (bdb6cbf).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1592   +/-   ##
=======================================
  Coverage   70.15%   70.15%
=======================================
  Files          60       60
  Lines        8236     8236
  Branches     8236     8236
=======================================
  Hits         5778     5778
  Misses       1988     1988
  Partials      470      470

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


Feature test framework overhaul

There are a lot of features to cover.
The previous way led to all scenarios being tested
through a single method.  While it was convenient
enough to add scenarios, finding failed scenarios and
debugging them became burdensome.  VS+R#
and Rider both step through every scenario even
when a single scenario is selected for debug.
With this change, there are several updates.

Each Scenarios class is identified as an independent test
by xunit.  This makes it easier to find, run and debug
failing scenarios.

Documentation has been added to explain to help
devs understand and write tests

Scenario property names have been changed to make
more sense for all use cases.  i.e. Help renamed to
Result since Result can be used in non-help scenarios

Models have been added to help ensure a sample of
.net types are considered in applicable scenarios.
The models also create a consistent pattern of use
across scenarios.

Several instances of ScenarioTestBase have been created
as guides and moved to the FeatureTests folder for
easy discovery

@bilal-fazlani  this README.md describes how to create the BDD tests.  I've made some usability updates and my hope is that the readme makes this clear enough anyone can use it.  This test is an example of the new format.  I've got a map of features to test that I'll be adding in the coming weeks as well as cleaning up the existing tests.
This exercise has been very helpful.  I'm finding a number of behaviors I hadn't expected that would have been easy enough to break without these tests.  I plan to finish these before adding new or modifying existing behaviors.

Cool!


🐛 [firebase_messaging: ^14.4.0] onbackgroundmessage issue

Bug report
Describe the bug
A clear and concise description of what the bug is.
Steps to reproduce
Steps to reproduce the behavior:
firebasemessaging.onbackgroundmessage not working  on firebase_messaging: ^14.4.0
Expected behavior
on background receive massage firebasemessaging.onbackgroundmessage should be fire.

Closing this since the information requested in the template has not been provided.

@asarkar101  are you found any solution ?

{
"message": {
"token": "fcm token",
"notification": {
"title":"test"
},
"data": {
"Title": "orders",
"Message": "Body of Your Notification in Data",
},
"android": {
"notification": {
"title":"test"
}
},
"apns": {
"payload": {
"aps": {
"mutable-content": 1,
"content-available": 1    ///// should add this line in aps
}
},
"fcm_options": {
"image": "https://foo.bar/pizza-monster.png"
}
},
"webpush": {
"headers": {
"image": "https://foo.bar/pizza-monster.png"
}
}
}
}


Updated left-nav

Updated left-nav.

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

File
Status
Preview URL
Details

microsoft-edge/toc.yml
:white_check_mark:Succeeded
View

microsoft-edge/webview2/toc.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

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

File
Status
Preview URL
Details

microsoft-edge/toc.yml
:white_check_mark:Succeeded
View

microsoft-edge/webview2/toc.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

#sign-off and merged.


Use correct RFOX epoch start timestamp

Overview
Currently, we have monkey patched the start timestamp of the first RFOX epoch in
https://github.com/shapeshift/web/blob/40d6a7cb2824b89eaab19d3839f4a75e060e5d6c/src/pages/RFOX/hooks/useEpochHistoryQuery.ts#L15-L17
However, as soon as we hit 30 days after the first rewards epoch (WARNING: this is 30 days later, not 1 month, which can be very very different. We want to test and merge this on Wednesday, 31 July 2024 00:00:00 GMT), we should revert this line back to its original implementation to make rewards happy.
References and additional details
https://github.com/shapeshift/web/blob/40d6a7cb2824b89eaab19d3839f4a75e060e5d6c/src/pages/RFOX/hooks/useEpochHistoryQuery.ts#L15-L17
Acceptance Criteria

Rewards are happy after 30 days

Need By Date
No response
Screenshots/Mockups
No response
Estimated effort
No response

Fine to author anytime, but can't be tested, and should not be merged before Wednesday, 31 July 2024 00:00:00 GMT.

Pushed #7234 to reduce the impact and risk associated with this task, so if we're late for any reason there is zero impact to produciton.

Marking as low priority now there is no impact in being late.


Custom CNI Networking Issue - Not allowed passing custom max-pods through user-data

Background
We are using custom CNI for our EKS clusters to have Nodes on routable IP pools (for e.g. 10.x.x.x) and pods on non-routable IP pools (100.x) to allow us to better plan our networks. However, Karpenter is not aware of the loss of one ENI when custom CNI is enabled and thus tries to over-provision pods causing dangling pods on the EC2.
This can be mitigated by running the pod-calculation script max-pods-calculator.sh from here with the flag/option --cni-custom-networking-enabled which returns the correct number of secondary IPs available after the loss of 1 ENI for the host. We need to then use this value to inject it into the --max-pods parameter so that the correct number of pods are provisioned after custom CNI is enabled.
The Issue
We have tried using AWSENILimitedPodDensity and using the CRD AWSNodeTemplate to update the max-pod value, but the default karpenter user-data overrides this attempt by passing --max-pods=110.
The Ask
In previous versions of Karpenter, we would be able to pass maxPods as a spec.kubletConfiguration property. However, this was removed in favor of the AWSEMILimitedPodDensity setup. How can we resolve this whilst continuing to use Karpenter and our Custom CNI settings?

@vazkarvishal I believe you intended to say Custom Networking rather than custom CNI.
Karpenter by default uses the max-pods calculation: # of ENI * (# of IPv4 per ENI - 1) + 2.
With VPC CNI Custom Networking enabled the formula should change to (# of ENI - 1) * (# of IPv4 per ENI - 1) + 2. Karpenter is not currently aware of CNI settings, and therefore, cannot know automatically to adjust the formula which is used to calculate max-pods.
There is not any provided method to override the maxPods calculation which is performed within Karpenter. However, Setting the environment variable AWS_ENI_LIMITED_POD_DENSITY
to false will cause maxPods to be statically set to 110.
This means that if you configure Karpenter to use only instance types which support 110 pods with VPC CNI Custom Networking enabled then a hard coded value of 110 will not cause any problems. This can be done by implementing the following:

Enable Prefix Delegation in the VPC CNI to cause most ec2 instance types to support 110 pods
Set AWS_ENI_LIMITED_POD_DENSITY=false environment variable on Karpenter to cause karpenter to always set the max pods value to 110
Restrict the ec2 instance types used by Karpenter to only nitro instances types which support 110 pods with Custom Networking enabled. Only nitro instances support enabling Prefix Delegation with the VPC CNI. See this for more info. I use the following python script to determine which instance types will meet these requirements:

import os
import boto3
from re import search
import requests

ec2 = boto3.Session().client('ec2', region_name = "us-west-2")

# Get the contents of this file because currently this is the easiest way to query for a list of ec2 instance types which support branch networking
contents = requests.get("https://raw.githubusercontent.com/aws/amazon-vpc-resource-controller-k8s/master/pkg/aws/vpc/limits.go")

# Filter for instance types which support branch networking by checking if the instance has IsTrunkingCompatible=true
instanceTypes = []
for line in contents.text.splitlines():
    s = search('.*\"(.*)\":.*IsTrunkingCompatible:\s*true', line)
    if s:
        instanceTypes.append(s.group(1))

# Filter instanceTypes to only contain instance types with the nitro hypervisor. The
# InstanceTypes input to the describe_instance_types only supports an array length up
# to 100, so the instanceTypes array is split into chunks of 100 or less.
nitroInstanceTypes = []
for chunk in [instanceTypes[i:i+100] for i in range(0, len(instanceTypes), 100)]:
    paginator = ec2.get_paginator('describe_instance_types')
    page_iterator = paginator.paginate(
        InstanceTypes=chunk,
        Filters=[
            {
                'Name': 'hypervisor',
                'Values': [
                    'nitro',
                ]
            },
        ],
    )
    for page in page_iterator:
        for t in page['InstanceTypes']:
            nitroInstanceTypes.append(t['InstanceType'])

# Sort the list alphabetically
nitroInstanceTypes.sort()

# Print a list of instance types
for i in nitroInstanceTypes:
    # Calculate how many pods are supported with both Custom Networking and Prefix Delegation features enabled on the VPC CNI
    maxPods = os.popen('./max-pods-calculator.sh --cni-version 1.9.0-eksbuild.1 --cni-prefix-delegation-enabled --cni-custom-networking-enabled --instance-type ' + i).read().strip()
    # Only print instance types that support 110 pods because Karpenter currently only supports the default maxPods calculation or hard coding to 110
    if maxPods == "110":
        print(i)

Note that I have not yet implemented use of Karpenter personally, but I happen to be researching this same topic at the moment so I thought my research above would be helpful to you.

@jwenz723  Thanks for the information. It is really valuable. However, Prefix delegation with IPV4 only allows /28 ranges (16 IPs). So in for an instance type where you can for example have a max of 4 secondary IPs, when using Prefix Delegation, this still means a max of 16*4 = 64 IPs/Pods (not quite the 110 which is the max pod limit).
Although I don't see more than 64 pods running on these small instances, this is still a limitation no? So Ideally being able to set max-pods would be a preference IMHO. Open to discussion.

@suket22, thoughts on adding maxPods to spec.kubletConfiguration as an override? I'm tentatively supportive of this.

We can add that back in, but one of the problems is we'd use that value across all instanceTypes which might not make sense if you've got a variety of instanceTypes of different sizes. If you're flexible to run on any instance of the c family, you'd find it difficult to set a value for max-pods since w/ custom networking it could vary so much -
> ./max-pods-calculator.sh --instance-type c5.large --cni-version 1.9.0 --cni-custom-networking-enabled
20
> ./max-pods-calculator.sh --instance-type c5.xlarge --cni-version 1.9.0 --cni-custom-networking-enabled
44
> ./max-pods-calculator.sh --instance-type c5.2xlarge --cni-version 1.9.0 --cni-custom-networking-enabled
44
> ./max-pods-calculator.sh --instance-type c5.4xlarge --cni-version 1.9.0 --cni-custom-networking-enabled
110

While it does sound like we're already violating this logically by always using 110 when the AWSEMILimitedPodDensityflag is set to Karpenter, it's because we expect pod density to be dictated by your pod requests and not themaxPodsfield on your worker node. With IPs not being a limiting factor anymore,maxPods` is now just a safe upper bound beyond which we expect your container-runtime / other sys components to have performance issues. It's not meant to serve as a control for pod-density.
I'm not against adding that parameter back to our spec fwiw - we can call these caveats out in our documentation and figure out what the interplay between this parameter and the AWSEMILimitedPodDensity flag will be.

There may be some practical tradeoffs to be made. I concur that getting this value right is more or less impossible across a wide variety of instance types, but users may be able to get away with setting a floor.

There may be some practical tradeoffs to be made. I concur that getting this value right is more or less impossible across a wide variety of instance types, but users may be able to get away with setting a floor.

We can also have a script/user-data stage which runs the file in the following flow to make it dynamic:

Instance metadata query to get instance type
Use this instance type to run the max-pods-calculator.sh which returns the number of pods
Use this number in the max pods

If ran sequentially, this will make the max-pods dynamically managed. In the current state, we cannot specify the flag when using Karpenter, so the above flow cannot happen.

@vazkarvishal I believe you intended to say Custom Networking rather than custom CNI.
Karpenter by default uses the max-pods calculation: # of ENI * (# of IPv4 per ENI - 1) + 2. With VPC CNI Custom Networking enabled the formula should change to (# of ENI - 1) * (# of IPv4 per ENI - 1) + 2. Karpenter is not currently aware of CNI settings, and therefore, cannot know automatically to adjust the formula which is used to calculate max-pods.
There is not any provided method to override the maxPods calculation which is performed within Karpenter. However, Setting the environment variable AWS_ENI_LIMITED_POD_DENSITY to false will cause maxPods to be statically set to 110. This means that if you configure Karpenter to use only instance types which support 110 pods with VPC CNI Custom Networking enabled then a hard coded value of 110 will not cause any problems. This can be done by implementing the following:

Enable Prefix Delegation in the VPC CNI to cause most ec2 instance types to support 110 pods
Set AWS_ENI_LIMITED_POD_DENSITY=false environment variable on Karpenter to cause karpenter to always set the max pods value to 110
Restrict the ec2 instance types used by Karpenter to only nitro instances types which support 110 pods with Custom Networking enabled. Only nitro instances support enabling Prefix Delegation with the VPC CNI. See this for more info. I use the following python script to determine which instance types will meet these requirements:

import os
import boto3
from re import search
import requests

ec2 = boto3.Session().client('ec2', region_name = "us-west-2")

# Get the contents of this file because currently this is the easiest way to query for a list of ec2 instance types which support branch networking
contents = requests.get("https://raw.githubusercontent.com/aws/amazon-vpc-resource-controller-k8s/master/pkg/aws/vpc/limits.go")

# Filter for instance types which support branch networking by checking if the instance has IsTrunkingCompatible=true
instanceTypes = []
for line in contents.text.splitlines():
    s = search('.*\"(.*)\":.*IsTrunkingCompatible:\s*true', line)
    if s:
        instanceTypes.append(s.group(1))

# Filter instanceTypes to only contain instance types with the nitro hypervisor. The
# InstanceTypes input to the describe_instance_types only supports an array length up
# to 100, so the instanceTypes array is split into chunks of 100 or less.
nitroInstanceTypes = []
for chunk in [instanceTypes[i:i+100] for i in range(0, len(instanceTypes), 100)]:
    paginator = ec2.get_paginator('describe_instance_types')
    page_iterator = paginator.paginate(
        InstanceTypes=chunk,
        Filters=[
            {
                'Name': 'hypervisor',
                'Values': [
                    'nitro',
                ]
            },
        ],
    )
    for page in page_iterator:
        for t in page['InstanceTypes']:
            nitroInstanceTypes.append(t['InstanceType'])

# Sort the list alphabetically
nitroInstanceTypes.sort()

# Print a list of instance types
for i in nitroInstanceTypes:
    # Calculate how many pods are supported with both Custom Networking and Prefix Delegation features enabled on the VPC CNI
    maxPods = os.popen('./max-pods-calculator.sh --cni-version 1.9.0-eksbuild.1 --cni-prefix-delegation-enabled --cni-custom-networking-enabled --instance-type ' + i).read().strip()
    # Only print instance types that support 110 pods because Karpenter currently only supports the default maxPods calculation or hard coding to 110
    if maxPods == "110":
        print(i)

Note that I have not yet implemented use of Karpenter personally, but I happen to be researching this same topic at the moment so I thought my research above would be helpful to you.
I believe at some future point in time Karpenter will support overriding the max pods value which is passed to kubelet, but at the current point in time the solution above seems to work.

@jwenz723  Thanks for this information. I have tested using prefix delegation with custom Networking now and the test code can be found here.
I will use your script to determine which EC2 Nitro instances support 110 pods at a minimum and limit our Karpenter provisioner to only use those types till we have a way forward. Another thing to make note of, while using multiple daemonsets (like Datadog for e.g.) it may logically make sense to always have some buffer for these daemonsets anyways which rules out the extra small instance types which would be affected by this limitation.
For now, I will use your script and take it from there. Thanks!

@jwenz723 Thanks for the information. It is really valuable. However, Prefix delegation with IPV4 only allows /28 ranges (16 IPs). So in for an instance type where you can for example have a max of 4 secondary IPs, when using Prefix Delegation, this still means a max of 16*4+2 = 66 IPs/Pods (not quite the 110 which is the max pod limit).
Although I don't see more than 66 pods running on these small instances, this is still a limitation no? So Ideally being able to set max-pods and make full use of Karpenters potential to scale across all available instance types would be a preference IMHO. Open to discussion.

In my post above my script includes a filter at the very end of the script which filters down the list of ec2 instance types to only those types which can support 110 pods. So small instance types like you mentioned will not be included in the list generated by my script.

Fwiw, I can confirm that I have been running karpenter with vpc CNI custom networking enabled successfully for multiple months now using a filtered down list of instance types generated by the script mentioned here.

reservedENIs have been implemented in https://github.com/aws/karpenter/pull/3516
See the docs here: https://karpenter.sh/preview/concepts/settings/#:~:text=aws.reservedENIs%3A,Copy

I know that this issue was marked as closed, but I believe that the original problem was not resolved. Currently there are a few options in Karpenter on how to configure pod density

aws.reservedENIs
spec.template.spec.kubelet.maxPods
spec.template.spec.kubelet.podsPerCore

All of them do not solve an issue with prefix delegation:

aws.reservedENIs – takes some ENIs out of calculations, but still does not multiply available addresses per ENI by 16
spec.template.spec.kubelet.maxPods – is static and thus requires effort to configure on per-instance type basis
spec.template.spec.kubelet.podsPerCore – on EKS available IPs for pods do not correlate well with vCPUs, e.g. t4g.nano and t4g.large have the same number of vCPUs, but significantly different number of available IPs

Currently there are 2 ways to solve this issue in a sense that was proposed by @vazkarvishal in https://github.com/aws/karpenter/issues/2029#issuecomment-1176155481:

Use a custom AMI – but it means that node label / taints / other bootstrap parameters need to be self-provided, which is cumbersome
Patch the /etc/eks/bootstrap.sh script via a userData script and force it to use calculated value, instead of the one provided by Karpenter

#!/usr/bin/env bash

INSTANCE_TYPE=$(imds 'latest/meta-data/instance-type')
MAX_PODS=$(/etc/eks/max-pods-calculator.sh \
  --instance-type $INSTANCE_TYPE \
  --cni-version 1.10.0 \
  --cni-custom-networking-enabled \
  --cni-prefix-delegation-enabled \
  --show-max-allowed \
)
MAX_PODS_KUBELET=110
MAX_PODS=$(($MAX_PODS > $MAX_PODS_KUBELET ? $MAX_PODS_KUBELET : $MAX_PODS))

BOOTSTRAP_SCRIPT="/etc/eks/bootstrap.sh"
sed -i "s/KUBELET_EXTRA_ARGS=\$2/KUBELET_EXTRA_ARGS=\$(echo \$2 | sed 's|--max-pods=[[:digit:]]\\\+|--max-pods=$MAX_PODS|')/" $BOOTSTRAP_SCRIPT

Honestly both options feel far from ideal, it would be great to have a proper way of passing custom dynamic maxPods parameter to Karpenter from a user data script

I agree with @wasd171. In our use case, we have a NodePool that utilizes different EC2 instance families (t, c, m), ranging from x.medium to x.2xlarge. This means each instance type may require a different maxPods value. Setting a fixed number could lead to inefficient resource utilization.
@bwagner5 Is there any update or plan on your roadmap to address this scenario? Could we consider reopening this issue?


Non-portable warnings and errors in testing

I've previously seen issues with tests/test_tools_center.py::test_set_center_float complaining that
OptimizeWarning: Covariance of the parameters could not be estimated

on some systems (like here) but not others (including my local).
But now the latest macOS, in addition, gives an error in tests/test_tools_polynomial.py::test_angular:
          AssertionError:
E           Not equal to tolerance rtol=1e-07, atol=0
E           -> cos^2
...
E            ACTUAL: array([-7.401487e-17,  0.000000e+00,  1.000000e+00])
E            DESIRED: array([0., 0., 1.])

which is very surprising because that result comes from multiplying [1, 0, 2] by a simple 3 × 3 matrix; for the 0th element of the result this is essentially equivalent to (1 * 1 + 2 * (-0.5)) * 1/3 and must give exact 0 for any reasonable implementation (-0.5 is exactly representable, and even though 1/3 is not, it multiplies what already should be exactly zero in any binary implementation).
This is apparently not an issue in NumPy/SciPy because tests in Linux and Windows with the same NumPy 2.1.3 and SciPy 1.14.1 pass perfectly.
So, @stggh (and @DanHickstein, if you'd have time), could you please run the tests on every system you can and report whether you see any errors or warnings? (I'll also try to see whether I can reproduce it on GitHub with a minimal working example to investigate where it comes from.)
In principle, we can hush this strange error for now by adding atol, but something is really weird there.

Dell optiplex 7070, Ubuntu 24.10, Anaconda python 3.13.0, No warnings.
Rpi5B, Rasp OS (Debian 12 bookworm), Anacona python 3.13.0, 1 warning:

abel/tests/test_tools_vmi.py::test_anisotropy_parameter
/home/stg121/Software/Python/PyAbel/abel/tools/vmi.py:397: OptimizeWarning: Covariance of the parameters could not be estimated
popt, pcov = curve_fit(PAD, theta, intensity)

This arises from the flat data test: check('ones',  (0, 1), theta, ones).
Macbook Pro 2023, Sequoia 15.1.1, Anaconda python 3.13.0, 1 error:

the same as you listed above

Q: How is rtol evaluated? Perhaps, not well defined for a zero valued quantity.

BTW: pip install -e . gives the following message (Rpi, and on the Macbook):

DEPRECATION: Legacy editable install of PyAbel==0.9.0 from file:///home/stg121/Software/Python/PyAbel (setup.py develop) is deprecated. pip 25.0 will enforce this behaviour change. A possible replacement is to add a pyproject.toml or enable --use-pep517, and use setuptools >= 64. If the resulting installation is not behaving as expected, try using --config-settings editable_mode=compat. Please consult the setuptools documentation for more information. Discussion can be found at https://github.com/pypa/pip/issues/11457

Macbook Pro 2023, Sequoia 15.1.1, Anaconda python 3.13.0, 1 error:

the same as you listed above

Macbook Pro 2023 is also arm64, as I understand. They apparently have some problems with scipy.legendre(). What I've found so far,
import numpy as np
np.set_printoptions(formatter={'float': lambda x: f'{x:.18g}'})
from scipy.special import legendre
print(legendre(2).c)

prints [1.5 0 -0.500000000000000111] instead of [1.5 0 -0.5] (as it should and does everywhere else). Could you confirm?
Looking into SciPy source code, it seems that they don't compute the coefficients directly, so these are probably some rounding errors (from Apple's overzealous hardware “optimizations”, I guess). No hope that this problem will be addressed, and, frankly, it doesn't matter for our practical usage, so I'll indeed have to add atol to the tests.

Q: How is rtol evaluated? Perhaps, not well defined for a zero valued quantity.

Yes, the difference actual - desired is compared against atol + rtol * abs(desired), so if desired is 0, then any nonzero actual will fail. I could swap actual and desired in assert_allclose(actual, desired), but adding an explicit atol would be less hackish.
Going to look at the covariance stuff...

Regarding install -e: Thanks for noticing! Building binary wheels also needs pyproject.toml, so we'll need to add it (to some extent) anyway.

prints [1.5 0 -0.500000000000000111] instead of [1.5 0 -0.5] (as it should and does everywhere else). Could you confirm?

Same, the Mac arm64 is the odd one.
Note, AFAIK the RpiB5 is arm64 too, but the output is correct.
(py313)[Rpi5NVMe:/home/stg121]$ lscpu
Architecture:             aarch64
  CPU op-mode(s):         32-bit, 64-bit
  Byte Order:             Little Endian
CPU(s):                   4
  On-line CPU(s) list:    0-3
Vendor ID:                ARM
  Model name:             Cortex-A76

@MikhailRyazanov - thanks for looking into all this stuff!

Well, I've traced the OptimizeWarning to incorrect behavior of scipy.optimize.curve_fit(). Interestingly, it indeed behaves very differently on different systems, see the logs here:

No warning (but wrong error_beta) on Ubuntu 22.
OptimizeWarning in ones on macOS 13 (x86-64).
Also OptimizeWarning, but in cos2sin2 on macOS 14 (arm64).

Initially I thought that curve_fit() just doesn't like data without any noise, but the discovered that only (sufficiently) random actually helps. So I've submitted a bug report at https://github.com/scipy/scipy/issues/21995. Let's see what they say, but even if it gets corrected, we'll still have it in older versions.
Thus I can imagine several options for our tests:

Continue ignoring this warning.
Suppress these “known” warnings in tests, such that other possible warnings can be noticed.
Add some noise to the test data. This would also permit testing error_beta and error_amplitude.
3.a. Add pseudorandom noise. More similar to real data, but will affect the fitted parameters, so either the tolerances must be increased, or the reference values must be adjusted empirically instead using the ideal ones.
3.b. Add alternating ±δ. Very artificial, but doesn't shift the fitted parameters and should have analytical fitting errors.

I was initially inclining towards 3.b, but it actually doesn't work because of the curve_fit() bug (see above). Unless we change the default optimization method 'lm' to something else. This might be actually reasonable at least for abel.tools.vmi.anisotropy_parameter(), because then instead of this:
        if beta > 2 or beta < -1:
            beta, error_beta = np.nan, np.nan

(which is not the best idea if you get something like beta = 2.01 ± 0.02) we can use fitting with explicit constraints -1 <= beta <= 2.
Any thoughts?

Wow, this is interesting!
I have recently observed the error estimate difference with python code running on Mac OS, but ignored it since Mac OS is not my main OS (Linux).
We are not limited to `curve_fit'. Here is some fit comparision code (requires lmfit):
import numpy as np
from scipy.optimize import least_squares, leastsq, curve_fit
from scipy import linalg
from lmfit.models import QuadraticModel

x = np.arange(101)
noise = np.random.normal(0, 1, 101)

def parab(x, a0, a1, a2):
    return a0 + a1*x + a2*x**2

def residual(v, x, y):
    a0, a1, a2 = v
    return parab(x, a0, a1, a2) - y

# data to fit to =========================================
y = parab(x, 0, 0, 2) + noise

# least_squares ===========================================
out = least_squares(residual, [1, 1, 1], args=(x, y))

# errors
#  https://stackoverflow.com/questions/42388139/how-to-compute-standard-deviation-errors-with-scipy-optimize-least-squares

cov = linalg.inv(out.jac.T @ out.jac)
chi2dof = np.sum(out.fun**2)/(out.fun.size - out.x.size)
cov *= chi2dof
perr = np.sqrt(np.diag(cov))

print('\n---------------- least_squares')
print('a0, a1, a2 = ', out.x)
print('stderr = ', perr)

# curve_fit =================================================
print('\n---------------- curve_fit')
# note, additional parameters for weighting,   sigma=yerr, absolute_sigma=True
popt, pcov = curve_fit(parab, x, y)

print('a0, a1, a2 = ', popt)
perr = np.sqrt(np.diag(pcov))
print('stderr = ', perr)

# lmfit ====================================================
print('\n----------------- lmfit - writes itself')

mod = QuadraticModel()

pars = mod.guess(y, x=x)

out = mod.fit(y, pars, x=x)

print(out.fit_report())

Ubuntu 24.10:
(py313)[Gibbo:/home/stg121]$ python fiterrors.py

---------------- least_squares
a0, a1, a2 =  [-0.63277837  0.02688425  1.99978304]
stderr =  [3.29592069e-01 1.52328335e-02 1.47400560e-04]

---------------- curve_fit
a0, a1, a2 =  [-0.63277837  0.02688425  1.99978304]
stderr =  [3.29595950e-01 1.52331664e-02 1.47404011e-04]

----------------- lmfit - writes itself
[[Model]]
    Model(parabolic)
[[Fit Statistics]]
    # fitting method   = leastsq
    # function evals   = 5
    # data points      = 101
    # variables        = 3
    chi-square         = 124.264135
    reduced chi-square = 1.26800138
    Akaike info crit   = 26.9361795
    Bayesian info crit = 34.7815410
    R-squared          = 0.99999997
[[Variables]]
    a:  1.99978304 +/- 1.4740e-04 (0.01%) (init = 1.999783)
    b:  0.02688425 +/- 0.01523283 (56.66%) (init = 0.02688425)
    c: -0.63277830 +/- 0.32959207 (52.09%) (init = -0.6327784)
[[Correlations]] (unreported correlations are < 0.100)
    C(a, b) = -0.9677
    C(b, c) = -0.8611
    C(a, c) = +0.7379

MacOS Sequoia 15.1.1:
---------------- least_squares
a0, a1, a2 =  [-0.01903886 -0.00530613  2.0000539 ]
stderr =  [2.99310591e-01 1.38333073e-02 1.33858041e-04]

---------------- curve_fit
a0, a1, a2 =  [-0.01903887 -0.00530613  2.0000539 ]
stderr =  [2.99322318e-01 1.38352639e-02 1.33869738e-04]

----------------- lmfit - writes itself
[[Model]]
    Model(parabolic)
[[Fit Statistics]]
    # fitting method   = leastsq
    # function evals   = 5
    # data points      = 101
    # variables        = 3
    chi-square         = 102.479375
    reduced chi-square = 1.04570791
    Akaike info crit   = 7.46864512
    Bayesian info crit = 15.3140067
    R-squared          = 0.99999997
[[Variables]]
    a:  2.00005390 +/- 1.3386e-04 (0.01%) (init = 2.000054)
    b: -0.00530613 +/- 0.01383336 (260.71%) (init = -0.00530613)
    c: -0.01903887 +/- 0.29931131 (1572.11%) (init = -0.01903887)
[[Correlations]] (unreported correlations are < 0.100)
    C(a, b) = -0.9677
    C(b, c) = -0.8611
    C(a, c) = +0.7379

Mac no noise noise = np.random.normal(0, 1, 101)*0:
---------------- least_squares
a0, a1, a2 =  [ 1.06974301e-13 -9.23355529e-15  2.00000000e+00]
stderr =  [7.09470560e-14 3.27897924e-15 3.17290443e-17]

---------------- curve_fit
a0, a1, a2 =  [ 9.29608837e-24 -2.20579111e-12  2.00000000e+00]
stderr =  [inf inf inf]

----------------- lmfit - writes itself
[[Model]]
    Model(parabolic)
[[Fit Statistics]]
    # fitting method   = leastsq
    # function evals   = 5
    # data points      = 101
    # variables        = 3
    chi-square         = 1.0081e-22
    reduced chi-square = 1.0287e-24
    Akaike info crit   = -5575.65287
    Bayesian info crit = -5567.80750
    R-squared          = 1.00000000
##  Warning: uncertainties could not be estimated:
    a:  at initial value
    b:  at initial value
    c:  at initial value
[[Variables]]
    a:  2.00000000 (init = 2)
    b:  4.3881e-14 (init = 4.388144e-14)
    c:  7.0702e-25 (init = -3.863071e-13)

Another possible solution, is to use least_squares (=evaluate our own error estimates) instead?

If I understand correctly, curve_fit() uses the same backend as least_squares() (at least the docs for both of them mention that 'lm' is from MINPACK). So either least_squares() is broken the same way and produces a wrong Jacobian, or curve_fit() uses that Jacobian poorly. Do you see that linalg.inv(out.jac.T @ out.jac) in your example leads to the correct correlation matrix?
I'm not really eager to reimplement the fitting procedure manually, especially since this problem is unlikely to appear for real experimental data. Maybe just ignore it?

We are not limited to `curve_fit'.

I've collected OptimizeWarnings from all the runs. They all are about covariance estimation and, besides test_anisotropy_parameter, come only from test_find_origin and test_set_center_float. Haven't investigated yet, but there should be only small amount of affected code (and I hope that optimization functions not returning the covariance matrix should not warn about it).

BTW, least_squares() does use method='trf' by default. So maybe we should just switch least_squares() to it?
When I've tried to do so, test_anisotropy_parameter() stopped complaining about covariances, but instead started giving real errors, apparently due to that
if beta > 2 or beta < -1:
    beta, error_beta = np.nan, np.nan

code mentioned above (sometimes the optimization yields beta slightly outside the range). I don't see that this behavior is documented, so @stggh, could you please explain what is the reason for returning NaNs instead of the actual fit results (and letting the user to decide what to do) or constraining beta to the [−2, 1] range? I would actually suggest adding to anisotropy_parameter() a boolean argument for choosing whether to return the results as is or to constrain.
P.S. Travis is great: this job is reported as “passed” despite pytest clearly failing...

could you please explain what is the reason for returning NaNs

I think that this is for the convenience of matplotlib, which does not plot np.nan, so that use of the data in a plot is not dominated by the uncertain values. I am happy to go with better ideas.

OK, what about the following?
def anisotropy_parameter(theta, intensity, theta_ranges=None, beta_out='nan'):
    ...

with

beta_out='nan' — current behavior (replace nonphysical beta with NaN),
beta_out='raw' — report fitted value as is,
beta_out='limit' — use -2 <= beta <= 1 constraints in the fitting function.

Better names for the parameter and its values are welcome. :–)

beta_out='limit' — use -2 <= beta <= 1 constraints in the fitting function

Are you planning on adding parameter bounds for the least-squares-fitting? A good idea. In which case method must be 'trf', the default is 'lm'. I have a gut feeling that 'trf' is not as good a fit as 'lm', but this could just be my gut.
Pehaps, beta_constraint?

I now favour of your original suggestion beta_out='nan', with the other string options. A user may wish for the output as given by curve_fit, so 'raw' may be useful.

@stggh, could you please give more information about the warning you've seen from pip install -e .?
I've tested in a clean Python 3.12.7 venv with the latest pip 24.3.1 and setuptools 75.6.0 but don't see any warnings at all.

MacOS

Raspberry Pi5B

Orange Pi 5

No warning for Ubuntu 22.10 install, although I occasionally see it. All Anaconda Python 3.13.0.

Generating a pyproject.toml file will fix. I used:

setuptools-py2cfg > setup.cfg

ini2toml setup.cfg > pyproject.toml

Interesting. I've tested now also with Python 3.13.0 (+ last pip and setuptools) and don't see any warning, neither from a fresh installation, nor from reinstalling.
It will be very useful If you post the generated pyproject.toml here (as I've mentioned, we'll need it; but I've run out of patience when I manually tried filling [project] enough to satisfy pip).

pyproject.toml

pyproject.toml

Thanks! The problem is that we need to take version from abel/_version.py (instead of remembering to change them manually in several places consistently). And that project.readme also must be generated from README.rst with some automatic modifications (at least for publishing on PyPI). In principle, pyproject.toml supports some sort of “dynamic” fields, but can they be created by these or any other tools?

can they be created by these or any other tools?

I know less than you :-(
this link suggests:
dynamic = ["version"]

and a setup.py:
import setuptools

setuptools.setup(
    version='0.9.0'
)

which works.

OK, we actually do set version=... and everything else is setup(). I'm curious, if you move as many as possible fields defined within that pyproject.toml into dynamic = [...], will it still work?

If we need to move something, it's fine; I'm concerned only about duplicating important stuff (with the danger of making it inconsistent).

My impression is that setup.py should be minimal. pyproject.toml holds the content. However, setup.py appears to be run before the contents of pyproject.toml are examined, so, in principle your idea will work.  I did try, but something broke.

@stggh (and @DanHickstein!), I've looked at all that stuff related to pyproject.toml and PEP 517. It seems that we'll be forced to switch to it soon; but instead of simplifying, it will make things more complicated in our case. The main problem is that there is no standard way to build Cython extensions optionally, but making cython a strict requirement doesn't seem justified (might cause huge problems for Windows users), although there are workarounds.
Right now, however, pyproject.toml will cause a more fundamental problem: Setuptools 44, the latest available for Python 2.7, recognizes its presence but doesn't take into account anything declared there. So we could probably keep everything in setup.py and create a very minimal pyproject.toml to satisfy these new pip install -e complaints. But I think, a better idea would be to release what we currently have, announcing it as the last PyAbel release with Python 2.7 support, and then do the transition to pyproject.toml properly (it does work consistently for all Python versions >=3.7).

no standard way to build Cython extensions

direct_C does not build on my Ubuntu 24.10 or MacOS systems, anaconda python evironment, which I haven't worried about. Perhaps, it is time to retire it?

announcing it as the last PyAbel release with Python 2.7

Agreed. Should have been dropped a while ago.

But direct_C does build successfully in our conda packages, and I've managed to make cibuildwheel build binary wheels for Linux, macOS and Windows, such that we can again include them in the PyPI release. Thus keeping it, but really optional, seems reasonable to me.

But direct_C does build successfully in our conda packages

What am I missing?
pip install . does not complain, it just does not build direct_C. I have also tried installing in a pure Ubuntu venv, with the same result.

I mean our distribution packages, built by https://github.com/conda-forge/pyabel-feedstock and uploaded to https://anaconda.org/conda-forge/pyabel/files. I don't know how it's done internally, but so far their automated pull requests to build “pyabel vXXX” and “Rebuild for pythonXXX” where working fine (for the last two, we'll first need to release the recent updates).

But I think, a better idea would be to release what we currently have, announcing it as the last PyAbel release with Python 2.7 support, and then do the transition to pyproject.toml properly

Dropping Py2.7 support is fine with me. And I like the idea of making the "last py2.7 compatible release".


Use with geodjango

Hi,
am I right that simply adding your public layer to my lambda function makes GDAL available to my lambda function?
I get the following error invoking the function:
django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal", "GDAL", "gdal2.2.0", "gdal2.1.0", "gdal2.0.0", "gdal1.11.0", "gdal1.10.0", "gdal1.9.0"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
Is that some non-standard location for gdal? As far as I can see here, I might need to adjust the path. But, where to?

Hi @ptrhck, if you are using the Docker image the library is located at /usr/local/lib
If you are talking about the Lambda function, the Lambda layer gets mounted at /opt, so /opt/lib is where libgdal is located. In most cases however the system should already know to look there for libraries.  Give that a try and let us know how it works, thanks.

The following seems to work in the django settings.py:
if "LAMBDA_TASK_ROOT" in os.environ:
    GDAL_LIBRARY_PATH = '/opt/lib/libgdal.so'

Great, thanks for following up!


"Application Layer"

Editing the documentation and adding some design features that have a "voice". Should make book options be fixed to the bottom of the page?

Print button on book.html

fixed page numbers on the side of book.html (line up to current page number?). More juicy bits—list of categories. Reminder that you're using Bindery. Knocking out background. Credits? "Bindery" lockup.


[BUG] SyncCopyFromUri works differently than StartCopyFromUri for copies within the same container.

Library name and version
Azure.Storage.Blobs 12.14.1
Describe the bug
SyncCopyFromUri and StartCopyFromUri have similar APIs, but SyncCopyFromUri implicitly waits for completion and has a size limit. But they do not appear to work the same, in practice, when copying within a container.
Expected behavior
SyncCopyFromUri should not need any more information than the source URI when copying from within the same container as the source, just like StartCopyFromUri does.
Actual behavior
SyncCopyFromUri throws an exception with the message "Server failed to authenticate the request. Please refer to the information in the www-authenticate header."
Reproduction Steps
var container = new BlobServiceClient(/* omitted */).GetBlobContainerClient("blobs");
var source = container.GetBlobClient("test.txt");
var copy = container.GetBlobClient("testcopy.txt");
copy.SyncCopyFromUri(source.Uri); // Server failed to authenticate the request. Please refer to the information in the www-authenticate header.
copy.StartCopyFromUri(source.Uri).WaitForCompletion(); // Works

Environment
.NET 6 / Visual Studio 17.5.0 Preview 1.0. Also observed in .NET Framework 4.8 in an entirely different project and platform--it seems to be an issue with Azure.Storage.Blobs (or at least my usage of it), not an environmental issue.

@RyanLamanskyInsite Thanks for reaching out to us and reporting this issue. We are looking into this issue and we will provide an update.

@RyanLamanskyInsite The SyncCopyFromUriAsync function uses Copy Blob Rest API underneath. Since You didn't provide the failing request ID in issue description, I am thinking the cause of 403 error Server failed to authenticate the request  is due to SAS token not being provided in the request for source blob.
So this behavior seems to be by-design and the same has been documented.

The source for a Copy Blob From URL operation can be any committed block blob in any Azure storage account that's either public or authorized with a shared access signature.

More Info:

x-ms-copy-source:name
Required. Specifies the URL of the source blob. The value can be a URL of up to 2 kibibytes (KiB) in length that specifies a blob. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or be authorized via a shared access signature. If the source blob is public, no authorization is required to perform the operation.

Action Plan:
Ensure that while accessing the source blob you pass the SAS token to authenticate.
So if you don't wish to provide the SAS token, try to make the Access Level on the container to public.
I tried to make the access level of container to public (from private) SyncCopyFromUriAsync( ) worked without the SAS token.

@RyanLamanskyInsite Here is the sample code which you can use to make the SyncCopyFromUri() method work. Hope this helps.


Upgrade eosjs & scatterjs dependencies

Change Description

Upgrade the dependencies to the latest stable versions to fix issues like #22
Upgrade eosjs to v20.0.0 (from v20.0.0-beta2)
Upgrade scatterjs-core to v1.7.17
Upgrade scatterjs-plugin-eosjs2 to v1.5.0
API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

fixes https://github.com/EOSIO/ual-scatter/issues/23 also


Find bugs/coverity

Coverage decreased (-0.09%) to 56.26% when pulling 5612c5d6e60e35bb5a1a38b7f4e08d612cfac73b on FindBugs/Coverity into a7e807aa0b4a2a5f3dcc34e397d2c91cdd16dbe6 on master.

Coverage decreased (-0.06%) to 56.29% when pulling 4114ab4e21dcb62b028a72b343ba14a8691246cd on FindBugs/Coverity into a7e807aa0b4a2a5f3dcc34e397d2c91cdd16dbe6 on master.


chore: rm scripts/check_silent.sh

Split out from #14314 as @grunweg wasn't certain of the impact.
We no longer use this script (verified by grep), instead relying on lakes --wfail option.

Makes sense, thanks!
maintainer merge


if it also works for segmentation task ?

Hi, thanks for you good job !
I want to know if this project also works for segmentation task?
thank you!

If you can compute gradients for every pixel then you can do that.


x/exp/slices: Grow should document zeroness of extended elements

In the event that Grow grows a slice, what assumptions are we allowed to make about the zeroness of the added elements? The current implementation guarantees that they are zero. Can we document that fact?
I have a loop that looks something like:
var s []T = ...   // possibly a pooled slice
mustZero  := true // we do not know the cleanliness of unused capacity
for hasMore() {
    if len(s) == cap(s) {
        s = slices.Grow(s, 1)
        mustZero = false // TODO: Is it safe to assume extended elements are zero?
    }
    s = s[:len(s)+1]
    e := &s[len(s)-1]
    if mustZero {
        *e = T{} // T may be large, so we want to avoid doing this if possible
    }
    mergeInto(e)
}

As an optimization it relies on slices.Grow extended the slice with zero elements, but this is not a documented guarantee.
\cc @ianlancetaylor

My first thought is that we shouldn't assume that Grow will zero out elements between the length and the capacity.  In particular, if the capacity is already large enough, I can easily imagine a version of Grow that would leave the slice untouched.

OK, sure.


Replace node array in xml

For example, in main config file i have node
<collcetion name="col">
   <add name="a" param="a" value="a" />
   <add name="b" param="b" value="b" />
   <add name="c" param="c" value="c" />
</collcetion>

and in second (enviroment-based) i want to replace it for
<collcetion name="col">
   <add name="a" param="aa" value="aa" />
   <add name="b" param="bb" value="bb" />
</collcetion>

in old-fashion configuration we have xdt namespace. But i dont see clear way to do this in current realisation of this library

Are you talking about config transforms? This is the wrong repository for that. I'd file that on aspnet/Tooling

@davidfowl no, i mean, merging functionality of Configuration at this moment not allow me to perform this operation without transforming

Could you be more specific? You added 2 xml files in a specific order and you're expecting specific merging behavior? It might help if you add some code to show usage

@davidfowl yes, in first file (default) i have array of nodes, and after adding second file i want to completely replace this nodes with new set, but perform merging of outer xml as usual.
Maybe it can be resolved by some hooks, but i dont find place for integration

@davidfowl  I've create some demo code
https://github.com/llCorvinSll/ConfigurationMergingDemo

Can you give a concrete example with inputs and then of what you expect the output to be so I can try and explain what the issue is?

as i sad before:
file A:
<collcetion name="col">
   <add name="a" param="a" value="a" />
   <add name="b" param="b" value="b" />
   <add name="c" param="c" value="c" />
</collcetion>

file B:
<collcetion name="col">
   <add name="a" param="aa" value="aa" />
   <add name="b" param="bb" value="bb" />
</collcetion>

and i want be able to set behavior for replacing collection from file A on file B (not merge as now)
so in result:
<collcetion name="col">
   <add name="a" param="aa" value="aa" />
   <add name="b" param="bb" value="bb" />
</collcetion>

Okay, yeah so the behavior where we merge is by design.  As David mentions, what you are looking for is transform which isn't something config is going to do.


searching, ctrl+f is not working

I have v0.6, in the browser the ctrl+f works, not in the tiddlywiki app. Maybe a chrome update broke it.

I don't know if it ever worked or not, but as this is running in a separate window, it might not be a feature. If you find any information about using ctrl+f in a chrome app window, feel free to link it and I'll take a look.


Allow to specify hiding repositories so that we don't risk version stealing when two repos have the same entity

Typical case we've seen when an internal package and an external package have the same name. We may want to "hide" the external package to ensure we retrieve our version, rather than the external version.

Closed by #41


Issue with multiple Entries in one Event (unhandled event FHEM)

After Upgrade to 5.3.1 my Iobroker Log have much entries with "unhandled event FHEM" Messages.
This Info Messages are only (!) from Events with multiple states, like Temperature wanted / desired / valve.
Log from Event Monitor FHEM:
CUL_HM Bad_2ter_Stock_Clima T: 26.6 desired: 10.0 valve: 0
In IOBROKER i get:
unhandled event FHEM: ---- | CUL_HM Bad_2ter_Stock_Clima T: 26.6 desired: 10.0 valve: 0 > no sync - no fhemObjects >> jsonlist2 Bad_2ter_Stock_Clima
I know i can disable the warning with
fhem.0.info.Settings.logUnhandledEventFHEM
but is this expected?

Installed latest Build from 23.08.20.
Now more Messages "unhandled event FHEM" are shown. Adapter running normal, Events are incoming.
Thanks for the fix.


AudioRecorder.pausePlaying(); missing

It looks as though there is a method missing from the Audio example.  I don't see it on the Audio.ios.js.  Assuming that I should be calling AudioPlayerManager.pause();

Can you provide a link to the line you're referring to?

Closing due to inactivity.


Godot showing glitched visuals and freezing on linux

Tested versions
Same happens in standalone build 4.2.2 from the godot website and from flathub
System information
Linux Mint 21.3 Cinnamon
Issue description
Whenever I launch godot, it works for a few seconds, then the os freezes except from the cursor, and sometimes it unfreezes and godot is all glitched
Steps to reproduce
Launch godot on a fresh linux mint live session (with persistence)
Minimal reproduction project (MRP)
it does not have to do with the project

Please print a full system information like: CPU, GPU, videodriver version. Otherwise, we can't help you.

I also use Linux Mint 21.3 Cinnamon. When I launch a Godot project, the OS and cursor freeze.
I use the “nvidia-driver-535” driver (535.171.04-0ubuntu<IP_ADDRESS>). It seems that the project selection window uses my integrated GPU, and that the Nvidia GPU is used when loading the project.
Here is my system information:

Please print a full system information like: CPU, GPU, videodriver version. Otherwise, we can't help you.

Sorry! I guess these are the ones you need?

Launch godot on a fresh linux mint live session (with persistence)

Live sessions runs from a USB stick, I expect that this freezing comes from low USB speeds.
Theoretically, a live session should be the same as an installed version. However, from experience I can you tell that live versions tend to be a bit buggier/wonkier than they should be: Everything is slow due to limited USB speeds, graphics/NVidia drivers not properly working (which then puts more strain on the CPU since the GPU isn't working), heavy RAM usage, and so on.
Does the problem persist on a normally installed Linux OS? (non-live)

Does the problem persist on a normally installed Linux OS? (non-live)

I don't have a non live install on my computer and it's going to be a hustle to make one so I don't know


Build ensure version with a single arg

Fixes #302

CI will fail until #303 is merged :(

I merged #303 and restarted this build. Once this succeeds, I'll merged these changes in.


Serialization for Tensor

In numpy, this can be acheived with *.npy or *.npz extension. Just wonder, given all supported backends in TensorNetwork, is there a unified way to save a bunch of tensors in a compressed and binary format file?
I have read the documentation for a while, but still couldn't find the saving functionality. Or perhaps I miss it somewhere :)
thanks!

Hi @tanlin2013 , unfortunately this is currently not supported. The Node class supports serialization to HDF5 format using h5py. You could initialize a Node using the data-array in Tensor and save that, if this helps.

If you are interested in contributing, PRs are always welcome!!

Sounds nice! I would love to.
I have a small repo tnpy that is built on top of TensorNetwork. I'm actaully about to implement TDVP and DMT for real-time evo. That's why I need to store MPS generated by DMRG.

nice! Let us know of any additional missing functionality, and we'll try to add it.

There is serialization support that exports networks to json, with array formats stored in their backend specified format. Currently the only backend that currently implements the the serialize/deserialize_tensor methods is the numpy backend, but this can be very easily added to other backends.
#824

tf.io.serialize_tensor(
tensor, name=None
)


As a developer, I want to be able to retrieve Podcasts from backend endpoints, so that I can feed them to the frontend

Acceptance Criteria:

[x] Implement an endpoint for searching podcasts by keyword.
[x] The endpoint should accept a search query parameter.
[x] It should return a list of podcasts matching the search query.
[x] Implement an endpoint for retrieving podcast details by ID.
[x] The endpoint should accept a podcast ID parameter.
[x] It should return the details of the podcast, including its title, description, and episodes.

Demo Steps:

Create a new branch for the feature development.
Implement the /api/podcasts/search endpoint in the PodcastController.
Add the necessary request parameter to accept the search query.
Implement a search function that queries the database for matching podcasts.
Write unit tests to ensure the search functionality works as expected.
Test the /api/podcasts/search endpoint using Postman or a similar tool.
Implement the /api/podcasts/{id} endpoint for retrieving podcast details.
Create unit tests to validate the podcast retrieval functionality.
Test the /api/podcasts/{id} endpoint with valid and invalid podcast IDs.
Request a code review from a colleague to ensure code quality and correctness.
Address any feedback received during the code review.
Merge the feature branch into the main branch.

Potential Risks:

There may be performance issues with database queries if the podcast dataset is very large.
Security vulnerabilities could arise if input validation and sanitization are not handled correctly.

Technical Notes:

Use a well-defined route structure for the new endpoints (e.g., /api/podcasts/search?q=your_query).
Optimize database queries by using appropriate indexing for search operations.
Implement proper input validation and sanitation to prevent potential security issues.

https://github.com/awaazo/awaazo/assets/46968018/e0fe2cbe-26bb-4616-919a-51a9fdb15f35
https://github.com/awaazo/awaazo/assets/46968018/6d1ee513-83b5-4fe0-8385-772162120190
https://github.com/awaazo/awaazo/assets/46968018/b415ef20-a1ad-498b-93a3-84d180bfd3fb


Is it possible to get this working with directives?

I have been trying for quite a while to get this functioning properly with directives instead of templates, but will it be impossible since the scope data isn't shared between a recursively created directive?
For some more detail, my directive uses an ng-switch to check whether or not the type of the object is a container or an item, and it will recursively navigate through all of the items in the array to display all nested items.

@garrickb It's possible. I am using this library with components of AngularJS 1.5

Yeah, but you'll have to pass all the variables you need to the isolated scope


session = None error and content-type error

currently on version 1.14
with default session = None, it throws error session not defined. looks like a bug.
36 def save_session(filename=None, path=None, session=None):
37     if session is None:
38         raise NameError("name 'session' is not defined.")
39     if not isinstance(session, requests.Session):
40         raise TypeError(f"Invalid session type. {session} is not a requests.Session Object...")
NameError: name 'session' is not defined.
and also this error
2024-05-26 22:51:03,836 [INFO] :: API Updated Successfully.
2024-05-26 22:51:04,996 [ERROR] :: 'content-type'
Traceback (most recent call last):
File "/opt/conda/lib/python3.9/site-packages/tweeterpy/request_util.py", line 31, in make_request
if "json" in response.headers["Content-Type"]:
File "/opt/conda/lib/python3.9/site-packages/requests/structures.py", line 52, in getitem
return self._store[key.lower()][1]
KeyError: 'content-type'

Hmmm it works on my side.
Note: you can only save the logged in sessions, not the guest sessions.
Try this
from tweeterpy import TweeterPy
twitter = TweeterPy()
twitter.login("username","password")
twitter.save_session()

Let me know if this works

thank you code works for me.
but i am using the old code called session_util.save_session
session_util.save_session(filename='AAA';, path='/home/notebook/', session=None)
where I can define a path to save the session.
for twitter.save_session(), looks like there is no way to define a file path?
save_session(session=None,session_name=None)
"""
Save a logged in session to avoid frequent logins in future.
    Args:
        session (requests.Session, optional): requests.Session object you want to save. If None, saves current session by default. Defaults to None.
        session_name (str, optional): Session name. If None, uses currently logged in username. Defaults to None.

    Returns:
        path: Saved session file path.
"""

ok actually just found it is defined here as
config.SESSION_DIRECTORY = '/home/notebook'


Is multi-GPU training now supported?

I want to know if multi-GPU training is now supported? I find it a bit troublesome to integrate the original LOMO code into my own code.

Hi,
At the moment, no. Would welcome a PR (essentially would need to add back some distributed support from original LOMO code to LOMOLite)!


Certification updates

Adding ML and Alexa specialty certs.
Adding a line on training for certs, and on cert lounges.
Note: I work with (but not for) A Cloud Guru.

Nice work. Rewording title for posterity.


[flake8-todos] TD rules trigger on words beginning with todo

Hi,
currently the TD rules trigger on words beginning with "todo", like # Todoist API
I think it should only trigger on the whole word "todo"
Thanks!

What's the upstream plugin do?

I looked in the code of that, and yeah, it does the same as in using the regex #\s*({tags}) and not looking if it is part of a word.


Build task fails when Live Share is disabled

Issue Type: Bug
Build task(using keybinding ctrl+shift+b) doesn't work if live share is disabled or uninstalled. No build task takes place, and no error message is given on why it failed. However, enabling live share seems to fix the problem.
Note that this problem occurs while trying to build cpp files. I have not tested this on other files.
This question has been migrated from the vscode-cpptools repo.
VS Code version: Code 1.36.1 (2213894ea0415ee8c85c5eea0d0ff81ecc191529, 2019-07-08T22:55:08.091Z)
OS version: Linux x64 4.20.17-042017-generic
Extensions (1)

Extension
Author (truncated)
Version

cpptools
ms-
0.24.1

(1 theme extensions excluded)

Seems like even test task fails. Even running build task(or test task) from the command pallete produces similar results.

Can you share your build task?

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "g++-8 build active file",
            "command": "g++-8",
            "args": [
                "-g",
                "${relativeFile}"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Run",
            "type": "shell",
            "command": "${workspaceFolder}/a.out",
            "group": {
                "kind": "test",
                "isDefault": true
            },
            "presentation": {
                "reveal": "always",
                "focus": true,
                "echo": false,
                "showReuseMessage": false,
                "panel": "dedicated"
            }
        }
    ]
}

Nothing looks concerning there. Can you share your settings.json? I'm wondering if you have some setting that is causing you task to need live share.

{
    "window.menuBarVisibility": "toggle",
    "C_Cpp.updateChannel": "Insiders",
    "workbench.statusBar.visible": false,
    "explorer.confirmDelete": false,
    "C_Cpp.default.intelliSenseMode": "gcc-x64",
    "C_Cpp.intelliSenseCacheSize": 0,
    "editor.minimap.enabled": false,
    "files.exclude": {
        ".vscode": true,
        "*.code-workspace": true
    },
    "workbench.activityBar.visible": true,
    "terminal.integrated.rightClickBehavior": "copyPaste",
    "debug.internalConsoleOptions": "neverOpen",
    "terminal.external.linuxExec": "gnome-terminal",
    "workbench.editor.tabCloseButton": "left",
    "breadcrumbs.enabled": false,
    "files.watcherExclude": {
        "*.code-workspace": true
    },
    "extensions.showRecommendationsOnlyOnDemand": true,
    "workbench.colorTheme": "Shades of Purple",
    "editor.fontFamily": "monospace",
    "editor.fontLigatures": true,
    "terminal.integrated.cursorStyle": "line",
    "terminal.integrated.drawBoldTextInBrightColors": false,
    "debug.showInStatusBar": "never"
}

If you open the dev tools (Developer: Toggle Developer Tools) is there anything in the console after you hit this issue?

When live share is disabled, after trying to run build task(ctrl+shift+b) and test task(ctrl+shift+t). Note that no message is displayed on running build or test task. All the message's occur after reloading vscode, after disabling live share.

The below screenshot is after re-enabling live share. The warnings and error occur right after enabling live share.

Are the settings you shared user or workspace settings? Can you share which ever one you haven't shared yet?

Can you also share your keybindings.json?

How do check which is what?

[
    {
        "key": "ctrl+shift+t",
        "command": "workbench.action.tasks.test"
    }
]

settings.json
{
    "window.menuBarVisibility": "toggle",
    "C_Cpp.updateChannel": "Insiders",
    "workbench.statusBar.visible": false,
    "explorer.confirmDelete": false,
    "C_Cpp.default.intelliSenseMode": "gcc-x64",
    "C_Cpp.intelliSenseCacheSize": 0,
    "editor.minimap.enabled": false,
    "files.exclude": {
        ".vscode": true,
        "*.code-workspace": true
    },
    "workbench.activityBar.visible": true,
    "terminal.integrated.rightClickBehavior": "copyPaste",
    "debug.internalConsoleOptions": "neverOpen",
    "terminal.external.linuxExec": "gnome-terminal",
    "workbench.editor.tabCloseButton": "left",
    "breadcrumbs.enabled": false,
    "files.watcherExclude": {
        "*.code-workspace": true
    },
    "extensions.showRecommendationsOnlyOnDemand": true,
    "workbench.colorTheme": "Shades of Purple",
    "editor.fontFamily": "monospace",
    "editor.fontLigatures": true,
    "terminal.integrated.cursorStyle": "line",
    "terminal.integrated.drawBoldTextInBrightColors": false,
    "debug.showInStatusBar": "never"
}

*.code-workspace
{
	"folders": [
		{
			"path": "."
		}
	],
	"settings": {
		"files.associations": {
			"iostream": "cpp"
		},
		"debug.internalConsoleOptions": "neverOpen"
	}
}

Are you able to replicate the issue?

I am not able to reproduce the issue. Can you run the build task by opening the command palette and running the build task from there?

Can you run the build task by opening the command palette and running the build task from there?

No. Build task doesn't work using any method.

I'm running on ubuntu 18.04, if that helps.
Steps to reproduce:

Install cpp-tools (microsoft extension)
Set-up build task
Install Live Share
Reload VSCode
Disable Live Share
Try running the build task now.

On ubuntu I can reproduce that the keybinding vanishes which is a problem. But I'm not seeing it ever come back. Running the build task from the command palette still works.

Can you try running the task using Run Task instead of Run Build Task?

Nope. I'm having no luck using any method.
Is there any way to delete VSCode along with all files it would have created?
I'll try a complete reinstall and check.

I did a complete reinstall, deleting ~/.configs/Code, ~/.vscode and ~/.vscode-cpptools. Then I reinstalled cpp-tools and now build task works fine without live share.

I've installed Live Share, and build and test task works when live share is disabled. Thanks for all your help!


Use 4 spaces for indentation consistently

Picked 4 spaces (used in README and standard for Apple's Swift examples) and normalized the files.
Configured that in the Xcode project explicitly so that other contributor's Xcode preferences should be overridden by that.
Added an .editorconfig so that non-Xcode contributors might have a chance to pick up the right settings.

Previously:

50% of the files were using spaces
50% of the files were using tabs
Some of them were inconsistent in themselves

Yeah, I've been merging PRs via GitHub, so spaces came from most contributors... :D
I'm not sure how much of an accepted community style 4 spaces is, but whatever, I'll take it. Thanks!

Yeah, there's no consensus I believe.
https://ericasadun.com/2016/03/31/swift-style-are-you-a-4-denter/


Clean up pipeline fixtures

/azp run Azure.azure-iot-sdk-python-dps-e2e

def _test_pipeline_root_runs_callback_in_callback_thread(self, stage, mocker):

I never noticed these..any reason these names start with an underscore ?

Refers to: azure-iot-device/tests/common/pipeline/test_pipeline_stages_base.py:65 in b095722. [](commit_id = b095722b90b77782d78aacc3614df3c1bc8a5581, deletion_comment = False)

def _test_pipeline_root_runs_callback_in_callback_thread(self, stage, mocker):

It's a bad pattern that I used and I hope to remove.  These are actually methods, but I'm defining them as functions (with an underscore so they don't run), then assigning the underscored function as a method on line 147 so it can run in the context of that class.  Horrible idea.

In reply to: 542369476 [](ancestors = 542369476)

Refers to: azure-iot-device/tests/common/pipeline/test_pipeline_stages_base.py:65 in b095722. [](commit_id = b095722b90b77782d78aacc3614df3c1bc8a5581, deletion_comment = False)

/azp run Azure.azure-iot-sdk-python-dps-e2e


[Consensus] First Iteration - Followups & Cleanup

Objective
Address all of the discussion and implementation points left in the primary PR: https://github.com/pokt-network/pocket/pull/48
Origin Document
Issue #28: V1 Consensus Module - First Iteration
Goals
Deliverables

[ ] Address all outstanding TODOs in the Consensus module
[ ] Address all of the open items below

Testing Methodology
Unit Tests
End-to-end unit testing
# Update/generate protobufs
$ make protogen_clean && make protogen_local

# Update/generate mocks
$ make mockgen

# Run pacemaker unit tests
$ make test_pacemaker

# Run hotstuff unit tests
$ make test_hotstuff
$ EXTRA_MSG_FAIL=true make test_hotstuff

# Run all unit tests
$ make test_all

Localnet testing
Delete any previous docker state
$ make docker_wipe

First Shell:
$ make compose_and_watch

Second Shell:
$ make client_start
$ make client_connect
> ResetToGenesis
> PrintNodeState # Check committed height is 0
> TriggerNextView
> PrintNodeState # Check committed height is 1
> TriggerNextView
> PrintNodeState # Check committed height is 2
> TogglePacemakerMode # Check that it’s automatic now
> TriggerNextView # Let it rip!

Non-goals

Add any new functionality to the Consensus module

Outstanding tasks
Short-term refactor

[ ] Remove temporary vars used for utility integration (e.g. maxTxBytes, emptyByzValidators, etc…)

Mid-term refactor

[ ] Sync with @Olshansk on how we can use mockgen for socket_mock.go (see utility in consensus PR as a reference)
[x] Consolidating various file with persistence and utility. Including but not limited to:

[x] Validator
[x] Block
[x] State
[x] Genesis

Large refactor

[ ] Discuss, design & implement the next step / iteration of the blockchain debug client (see cosmos and others as a references)
[ ] Add support for dynamic validator sets

Discuss

[ ] Provide a rationale as to why we’re using "github.com/stretchr/testify/require" and add it to the deps README
[ ] Sync with @andrewnguyen22 on the difference between blockHash and appHash

Documentaiton

[ ] Add a proper design doc

Next Steps on Research and Implementation

Development

Add a lot more unit tests
Implement proper leader election
Need to work with @derrandz to implement state sync
Move over all tests into shared directory

Research

Create a hotstuff research group
Research other projects using hotstuff (which variation, how is it test, how is it benchmarked, documented, etc...)
Investigate debug clients & tooling from other projects
Investigate benchmark tooling from other clients or build own
Find a solution for threshold signatures in large validator sets and implement it!!!!!
Understand how other projects deal with NodeIds
Discuss the issue of LockedQC and HighQC with @andrewnguyen22

Note that all of the action & discussion items have been either addressed in https://github.com/pokt-network/pocket/pull/64 or discussed in internal team meetings. If you'd like access to the notes or recordings, please ping myself or someone else on the protocol team directly and we'd be happy to collaborate.
Leaving this open until the low prioriiry open-ended items are tended to or deemed not necessary.

Closing for housekeeping.


Individual Play-Services APIs

Will the Individual Play-Services API aars be included in a future release to be uploaded to a Central Repo?
%ANDROID_HOME%\extras\google\m2repository\com\google\android\gms\play-services-maps
http://developer.android.com/google/play-services/setup.html - Table 1
Google+	com.google.android.gms:play-services-plus:6.5.87
Google Account Login	com.google.android.gms:play-services-identity:6.5.87
Google Activity Recognition	com.google.android.gms:play-services-location:6.5.87
etc..

Not sure what you are asking @Stuey86
Using the maven-android-sdk-deployer you can deploy to your hosted repository.
But the maven-android-sdk-deployer project doesn't own the Google Play-Services  artifacts and cannot deploy them to Maven Central. For that you need to pressure Google.

Hi @william-ferguson-au
I was asking about the maven-android-sdk-deployer to a private Nexus Repo, not Central
The Deployer currently only deploys the All inclusive Play Services API, but not the individual API's so that i can only include the API's I need. e.g.

com.google.android.gms
play-services-maps
6.5.87

I have to manually install the Files each time.
Thanks

Do you mean the artifacts that are shipped in the 2 Maven repos within the Android SDK?
Just create a hosted Nexus repo that points to each location. There's no need for the maven-sdk-deployer to do anything.

@william-ferguson-au @Stuey86 the Maven repositories from the the SDK are also installed or deployed by the Maven Android SDK Deployer.. using a hosted Nexus instance where the storage points to the SDK is a suboptimal solution that only works with Nexus.
Better create an Android repository for all the deployer tools. Set it to allow redeploys. And run the deployer into it regularly (whenever you update the SDK basically).
Now in terms of these additional artifacts.. where are they in the SDK?

@mosabua The additional Artifacts are the split up Play Services found here %ANDROID_HOME%\android-sdk\extras\google\m2repository\com\google\android\gms

@Stuey86 all the artifacts in the m2repository are installed/deployed with the Maven Android SDK Deployer so you should be okay..

Thanks @mosabua . Finally got a chance to check it out. :) works great
Do you also have a problem where the API Artficats (play-services-maps, play-services-location, etc..)  reference the play-services-base 6.5.87 as a JAR but the actual artifact is an AAR

Stuey that is a problem with the way that AAR libraries with AAR
dependencies (deployed in the Android) have been packaged.
See
http://design-counts.blogspot.com.au/2014/11/handling-missing-android-support-v420.html
And feel free to star
https://code.google.com/p/android/issues/detail?id=72807
William
ᐧ
On Wed, Mar 4, 2015 at 9:14 PM, Stuey86<EMAIL_ADDRESS>wrote:

Thanks @mosabua https://github.com/mosabua . Finally got a chance to
check it out. :) works great
Do you also have a problem where the API Artficats (play-services-maps,
play-services-location, etc..) reference the play-services-base 6.5.87 as a
JAR but the actual artifact is an AAR
—
Reply to this email directly or view it on GitHub
https://github.com/simpligility/maven-android-sdk-deployer/issues/270#issuecomment-77140258
.


Make benchmark comparison pgzip vs pigz

Hi Klaus,
can you make benchmark comparison for such parameters as compression speed, compression level, memory usage between your implementation of pgzip and latest pigz on various sets of files? For example, on Calgary Corpus.

I have some data here: https://docs.google.com/spreadsheets/d/1nuNE2nPfuINCZJRMt6wFWhKpToF95I47XjSsc-1rbPQ/edit#gid=1577451957
See (medium/rebalanced) for Matt Mahoneys 10GB corpus (Calgary is too small for it to make sense) - there is pigz at the bottom.

@klauspost Thank you for comprehensive comparison.


Emoji with dashes unsupported

There's a report in the emojis repo that :amazon-cogito: isn't recognised: https://github.com/buildkite/emojis/issues/252
I believe it's because of this emoji regexp:
https://github.com/buildkite/cli/blob/e635a7d96563e6488376a0fe942b48f959f94686/local/emoji.go#L28
\w does not include - (see the re2 docs) so it isn't matching.

👋 Thanks for the issue! There isn't currently a local command in the newer version (3.x.x) of the CLI and so I'm going to move this to closed, unplanned. We're looking at alternative solutions to support local runs that don't require as much maintenance.


depends_on seems to be broken on workflow level

Component
agent
Describe the bug
After updating to 2.6.0, it seems that my Auth server tests.yml, which has a depends_on: [ 'Build Auth' ] on top, is no longer awaiting Build Auth.yml. We have multiple workflows with workflow-level dependencies that are all experiencing similar problems.
Steps to reproduce

Create a workflow file Build Auth.yml, give it a single step that takes a few seconds.
Create another workflow file Auth server tests.yml
Add depends_on: [ 'Build Auth' ] to the top of Auth server tests.yml

Expected behavior
The Auth server tests.yml should wait for Build Auth to finish before running.
System Info
2.6.0

Additional context
No response
Validations

[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Checked that the bug isn't fixed in the next version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]

This is one example:
Build base.yml is executed before anything, as it should.
when:
  - ref: 'refs/heads/main'
    event: [ 'push', 'pull_request' ]
  - event: [ 'pull_request' ]

steps:
  - name: 'Build base'
    image: docker
    environment: # redacted
    volumes: [ '/var/run/docker.sock:/var/run/docker.sock' ]
    commands:
      - ./ci/docker_drone ${CI_COMMIT_SHA} stage1
      - ./ci/docker_drone ${CI_COMMIT_SHA} stage2

Build Auth.yml
depends_on: [ 'Build base' ]
when:
  - ref: 'refs/heads/main'
    event: [ 'push', 'pull_request' ]
  - event: [ 'pull_request' ]

steps:
  - name: 'Build Auth'
    image: docker
    environment: # redacted
    volumes: [ '/var/run/docker.sock:/var/run/docker.sock' ]
    commands:
      - ./ci/docker_drone ${CI_COMMIT_SHA} auth-build

Auth server tests.yml
depends_on: [ 'Build Auth' ]
when:
  - ref: 'refs/heads/main'
    event: [ 'push', 'pull_request' ]
  - event: [ 'pull_request' ]

variables:
  &when_paths [ { path: { include: ['auth-server/src/**', 'gradle/libs*.versions.toml'] } } ]

services:
  - name: viamysql
    when: *when_paths
    image: mysql
    environment: # redacted

steps:
  - name: 'Auth server tests'
    image: auth-build:${CI_COMMIT_SHA}
    environment: # redacted
    when: *when_paths
    commands:
      - ./ci/run_auth_server_tests

The most frustrating part about this is that it seems inconsistent, sometimet it works sometimes it doesn't.
The docker_drone script is just a very simple helper to build a certain stage of a docker file with the tag target:commit_sha.
#!/usr/bin/env sh
sha="$1"
target="$2"
[ -z "$sha" ] && echo 'ERROR: Missing first param (SHA)' && exit 0
[ -z "$target" ] && echo 'ERROR: Missing second param (target name)' && exit 0
docker build --target "$target" -t "$target:$sha" .

The errors are consistently logged as the image auth-build:${CI_COMMIT_SHA} does not exist, and from following the flow in the web UI it's apparent that it's because the auth-build step hasn't finished.

This is the exact error, and it only ever happens on steps depending on the build of an image (this time on a different build-step with similar dependencies):

Oh no, we got some errors!Error response from daemon: pull access denied for seclib-build, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
On rerun, everything is fine.


Describing yuv422p10le streams

Hi,
I've been trying to use zimg to resize an input stream of YUV 422 planar 10-bits images but I'm failing to understand how to describe the input format.
I took a look at the api_example.cpp and I can't get a grasp of the subsample_w member inside the zimage_format struct.
I ended up with something like this for my in & out formats:
  zimgxx::zimage_format in_format;
  in_format.width = 3840;
  in_format.height = 2160;
  in_format.depth = 10;
  in_format.color_family = ZIMG_COLOR_YUV;
  in_format.pixel_type = ZIMG_PIXEL_WORD;
  in_format.matrix_coefficients = ZIMG_MATRIX_BT709;
  in_format.pixel_range = ZIMG_RANGE_LIMITED;
  in_format.subsample_w=1;
  in_format.subsample_h=1;

  zimgxx::zimage_format out_format;
  out_format.width = 960;
  out_format.height = 540;
  out_format.depth = 10;
  out_format.color_family = ZIMG_COLOR_YUV;
  out_format.pixel_type = ZIMG_PIXEL_WORD;
  out_format.matrix_coefficients = ZIMG_MATRIX_BT709;
  out_format.pixel_range = ZIMG_RANGE_LIMITED;
  out_format.subsample_w=1;
  out_format.subsample_h=1;

I reused the allocate_buffer function from api_example but I'm not getting the expected plane size values (16588800, 8294400, 8294400). My guess is that my format is wrong. I still went on and manually allocated my buffers with the following code:
std::pair<zimgxx::zimage_buffer, std::shared_ptr<void>> allocate_buffer(const zimgxx::zimage_format &format,
                                                                        size_t alignment)
{
  zimgxx::zimage_buffer buf;
  std::shared_ptr<void> ptr;
  ptr.reset(aligned_malloc(format.width*format.height*4, alignment), &aligned_free);

  buf.stride(0) = format.width*2;
  buf.stride(1) = format.width;
  buf.stride(2) = format.width;
  buf.mask(0) = ZIMG_BUFFER_MAX;
  buf.mask(1) = ZIMG_BUFFER_MAX;
  buf.mask(2) = ZIMG_BUFFER_MAX;
  buf.data(0) = static_cast<unsigned char *>(ptr.get());
  buf.data(1) = static_cast<unsigned char *>(ptr.get())+format.width*format.height*2;
  buf.data(2) = static_cast<unsigned char *>(ptr.get())+format.width*format.height*3;

  return {buf,ptr};
}

Once my graph is processed, I see that the resulting image is missing the U & V component values for the bottom half of the image:

So basically my issue seems to be related to how the image_format is configured in order to described a YUV 4:2:2 planar 10-bits image. Could anyone please point me in the right direction ?
Thanks.

Sorry for the disruption, I found my issue. In my testing, I forgot to revert subsampling_h to 0 instead of 1.
I am not a smart man :)


Commitlint plugin does not recognize ⬆

The bug concerns the commitlint plugin/config.
I usea  custom config available  in this repository. It is possible to reproduce the bug by changing the value of anyGitmoji to '⬆'.
The validation message is "Your commit should start with gitmoji code,please check the emoji code on https://gitmoji.dev/."

Could reproduce with 🩹, so it seems to be a wider problem...

It seems that using is-fullwidth-code-point
And replacing the unicodeRegex with unicodeResult = raw.split('').filter(isFullwidthCodePoint); would validate the commit message.
Would you accept a PR, or is this repo dead ?

I have the same problem with 🧪 and 🏗.
I found this regex  (line 10) and I made a list of all emojis based on this json and a lot of emojis doesn't match with this regex.
Sample: https://regex101.com/r/BS5M9a/1
This regex work as well: https://regex101.com/r/R7drml/1 but I'm not sure about this solution.

I found this as well, and I think this project is dead :/

fixed in<EMAIL_ADDRESS>


Prompt template is not translated to Chinese

Please let me know why the Prompt template at the fine tuning code which not translated to Chinese ?
PROMPT_TEMPLATE = (         "Below is an instruction that describes a task. "         "Write a response that appropriately completes the request.\n\n"         "### Instruction:\n{instruction}\n\n### Response: "     )

Because our released Alpaca models are trained in that way.
The main purpose is to inherit English ability of the original LLaMA when adapting to Chinese data.
As we have not thoroughly tested whether it is better to use English or Chinese prompt template, you are free to use another desired template if you would like to train your own model.

I comprehend the essence of alpaca instruction fine-tuning derived from the original LLaMA. Nonetheless, I believe it would be more logical to adapt the prompt for a specific language, such as Chinese. By the way, I appreciate your repository and your valuable contributions.


fix: downgrade breaking change typebox

Breaking change in typebox dep is causing a service start crash:
TypeCompilerTypeGuardError: Preflight validation check failed to guard for the given schema

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


Editor: Font Ligatures setting missing comment and not displayed as boolean

VSCode Version: 1.40 Insiders
OS Version: Windows 10

Steps to Reproduce:

Open the Settings editor and search for "font".

Notice that the Editor: Font Ligatures settings is no longer shown as a boolean checkbox, has no description, and shows "Edit in settings.json".
Something may have been lost in a recent refactoring.

OK, then the issue is just that the setting doesn't have a description.

Not planning on supporting complex types like that right now. But it does need a description.

Looks like the EditorOption definition is missing a description at the outer object. Once the type is known, either boolean or string, there is an appropriate description on hover but there is nothing if the type isn't known.
There should be a general description of true, false, or the new advanced setting. This description will show up in the Settings editor, initial IntelliSense in settings.json (before the type is known), and the Default Settings (JSON).
Right now in Default Settings (JSON), the users sees an empty comment:
	//
	"editor.fontLigatures": false,

Change the value to string. "editor.fontLigatures": "true",


fix for selective seq length test with batch size 1

fix for selective seq length test with batch size 1

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@kalyanjk Please run make style


FateIT Repo Error Test

Closes #4266
This adds a test testRepoFails() to FateIT in 2.1 which ensures undo() is called and in the expected order when an error occurs in a Repo's call() or isReady() methods.

Removed SUBMITTED check in the new test testRepoFails (not needed -
tested elsewhere)
Changed tests testTransactionStatus and testCancelWhileInCall to start
the transaction runners after the SUBMITTED check (the race condition
existed in these tests too)
Resolved race condition on checking the FAILED state of the
transaction in testRepoFails