fix KeyError for 'url'

Sometimes we encounted KeyError for 'url' Because of under the lines.
type of cipher_url is tuple, not dict. so it could not add url including
in stream_data['url_encoded_fmt_stream_map'].
so i changed way to add stream_data['url_encoded_fmt_stream_map'].

Issue seems to be fixed already -- please re-open if this isn't the case :)


doc/go_mem: "hello, world" will not always be printed twice

It seems like the referenced doc is misleading:
https://github.com/golang/go/blob/66ff373911a87140319a6550e4e1b2c6043b1329/doc/go_mem.html#L425
What did you do?
package main

import "sync"

var a string
var once sync.Once

func setup() {
	a = "hello, world"
}

func doprint() {
	once.Do(setup)
	print(a)
}

func twoprint() {
	go doprint()
	go doprint()
}

func main() {
	twoprint()
}

What did you expect to see?
The result will be that "hello, world" will be printed twice.
What did you see instead?
Sometimes it was printed twice, and sometimes it was not printed at all.
System details
go version go1.12.9 windows/amd64
GOARCH="amd64"
GOBIN=""
GOCACHE="C:\Users\*****\AppData\Local\go-build"
GOEXE=".exe"
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="windows"
GOOS="windows"
GOPATH="C:\Users\******\go"
GOPROXY=""
GORACE=""
GOROOT="c:\go"
GOTMPDIR=""
GOTOOLDIR="c:\go\pkg\tool\windows_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
GOROOT/bin/go version: go version go1.12.9 windows/amd64
GOROOT/bin/go tool compile -V: compile version go1.12.9

You need some kind of synchronization like a channel or sync.WaitGroup to wait for the goroutines to complete before returning from main().
Quoting https://golang.org/ref/spec#Program_execution

Program execution begins by initializing the main package and then invoking the function main. When that function invocation returns, the program exits. It does not wait for other (non-main) goroutines to complete.

Yes, of course. But the problem is with the documentation that states printing twice happens without any mention of a synchronization method.
Here is my proposed change to the example code that shows the functionality of Once.Do while being correct:
var a string
var once sync.Once

func setup() {
	a += "hello, world" //change: to show that it doesn't run twice
}

func doprint(done chan int) {
	once.Do(setup)
	print(a)
	done <- 1
}

func twoprint() {
	var done = make(chan int) //change: synchronization
	go doprint(done)
	go doprint(done)
	<-done
	<-done
}

You assumed a particular func main(). This one is guaranteed to always execute both prints — just not guaranteed to terminate!

On the one hand, the missing func main() does leave out an interesting detail.
On the other hand, the document is full of interesting details already — and adding that detail to one example implies that we would need to add it to the other examples, obscuring the more important point about the specific synchronization mechanism that is the focus of the example.
Is there a way to make the examples more correct without making them substantially more verbose?

CC @dvyukov @ianlancetaylor
See previously #27808.

@bcmills
Actually, I didn't assume anything. As you can see on this line , it says calling twoprint will call setup exactly once.
So it's the issue of wording in my opinion, which could create a wrong impression to someone new to Go, that sync.Once somehow stops main from returning before its spawned go-routines return.
I think changing the sentence to something like:
calling twoprint , assuming main() won't return yet, will call setup exactly once.
can somewhat mitigate the situtation.

it seems to be an unnecessary detail.


Manual: Fixed typo that casued a syntax error

Travis has failed this due to some other issue with a derivation called 'calamares-1.0', which (as far as I can see) has nothing to do with a typo correction for the docs.

That evaluation problem is on master already, discussed on https://github.com/NixOS/nixpkgs/pull/11764#issuecomment-165381821.

LGTM. A small nitpick: please squash commits into one.

The commits have been squashed.

Thanks!


Consumer receiving topic metadata without being subscribed

We saw this behavior when a service was re-using the same group id as a different service. They were getting metadata for a completely different topic than the one they were subscribed to, causing KafkaJS to crash the consumer when trying to find the leader for a partition: Cannot read property ‘partitionMetadata’ of undefined.
I.e.

Service A with group id consumer subscribes to topic-1 and consumes messages.
Service B with group id consumer subscribes to topic-2 and tries to consume messages.
Service B consumer crashes because it only gets topic metadata for topic-1.

I gave some thought to this problem, and I think the consumers should ignore topics that they don't know (are not subscribed). The reason is that when update consumers, let's say a rolling update; They might subscribe to new topics or stop listening to old ones. The leader of the group will determine which data the other consumers will receive, thus potentially receiving more or fewer topics then originally until the end of the update.
So, I think we should be resilient to this case but warn whenever it happens. WDYT?

Wow, that's weird. We have to investigate.

@Nevon should we close this for now?


ShopifyAPI::GraphQL::InvalidClient Error

Trying a small test Ruby script I am consistently hitting this error regardless of which API version I specify. And specifying an API version is required. I'll paste my small test script belong, along with the specific error. Any feedback or insight would be appreciated!
`require 'shopify_api'
API_KEY = "{my_api_key}"
PASSWORD = "{my_api_password}"
SHOP_NAME = "{my_shop_name}"
API_VERSION = "2020-07"
shop_url =<EMAIL_ADDRESS>ShopifyAPI::Base.site = shop_url
ShopifyAPI::Base.api_version = API_VERSION # find the latest stable api_version here: https://shopify.dev/concepts/about-apis/versioning
shopify_session = ShopifyAPI::Session.new(domain: "#{SHOP_NAME}.myshopify.com", token: PASSWORD, api_version: API_VERSION, extra: nil)
ShopifyAPI::Base.activate_session(shopify_session)
client = ShopifyAPI::GraphQL.client
SHOP_NAME_QUERY = client.parse <<-'GRAPHQL'
{
shop {
name
}
}
GRAPHQL
result = client.query(SHOP_NAME_QUERY)
puts result.data.shop.name`
And here is the error, regardless of which API version I define.
** from ./test-gql.rb:13:in <main>' /home/vm-admin/.rvm/gems/ruby-2.5.7/gems/shopify_api-9.2.0/lib/shopify_api/graphql.rb:27:in client': Client for API version 2020-07 does not exist because no schema file exists at shopify_graphql_schemas/2020-07.json. (ShopifyAPI::GraphQL::InvalidClient)**

Hi @gregarican
I think this because you need to first dump the schema as described here:
https://github.com/Shopify/shopify_api/blob/master/docs/graphql.md#dump-the-schema
Hope that helps.

Thanks for the quick reply! I installed this as a gem, and when I run the rake command I get an error that the Rakefile is not found. Do I need to run this command from where the gem installed shopify_api to?

Here is the specific error. I tried pulling this via git clone, went to the project directory and got the same outcome as going to the root of the project's gem directory. Here is the specific error returned by the latter below.
Seems rather tedious to get started?
Don't know how to build task 'shopify_api:graphql:dump' (See the list of available tasks with rake --tasks)
/home/vm-admin/.rvm/gems/ruby-2.5.7/gems/rake-13.0.1/exe/rake:27:in <top (required)>' /home/vm-admin/.rvm/gems/ruby-2.5.7/bin/ruby_executable_hooks:24:in eval'
/home/vm-admin/.rvm/gems/ruby-2.5.7/bin/ruby_executable_hooks:24:in `'
(See full trace by running task with --trace)

Hi @gregarican
There shouldn't be any need to clone the repo, but looking into this some more I found that the Rake task is only available if the gem is used with a Rails app:
https://github.com/Shopify/shopify_api/blob/master/lib/shopify_api/graphql/railtie.rb
So if you generate a barebones Rails app you should be able to generate it via that.
I realize that's not ideal, and I've created #765 to look at improving this.

Thanks for the suggestion! Actually I just pulled down the shopify_app project and ran that command just fine. Now where do I place the JSON file that got dumped out? I tried placing it in the shopify_api gem's /db/shopify_graphql_schemas directory I created but it's still not being found. Sorry for the hassle!

@gregarican Happy to hear you've got it working!


updatecli: dynamic specs

What does this PR do?

Use values.yml to define the configuration to be used when running the updatecli apply, see https://www.updatecli.io/docs/commands/updatecli_apply/#updatecli-apply
Use updatecli scm to fetch the specs in elastic/apm and elastic/apm-data under the different folders.
To update those files, use tar with the shell target.

Checklist

[ ] This is an enhancement of existing features, or a new feature in existing plugins

[ ] I have updated CHANGELOG.asciidoc
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] Added an API method or config option? Document in which version this will be introduced
[ ] I have made corresponding changes to the documentation

[ ] This is a bugfix

[ ] I have updated CHANGELOG.asciidoc
[ ] I have added tests that would fail without this fix

[ ] This is a new plugin

[ ] I have updated CHANGELOG.asciidoc
[ ] My code follows the style guidelines of this project
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] I have updated supported-technologies.asciidoc
[ ] Added an API method or config option? Document in which version this will be introduced
[ ] Added an instrumentation plugin? Describe how you made sure that old, non-supported versions are not instrumented by accident.

[x] This is something else

[ ] I have updated CHANGELOG.asciidoc

Test
I iterated in the existing GitHub action by using the upstream branch:

https://github.com/elastic/apm-agent-java/actions/runs/7545513322/job/20541293368 ran successfully.

I wonder how we could change this?

What do you mean by changing this?

would introducing few changes in the repo and execute updatecli directly be possible ? If that works then only the trigger when changes are made in the upstream repo would be needed.

That's correct; you can use your forked repository to test this and override the vaults.yml for the branch and owner.
diff --git a/.ci/updatecli/values.yml b/.ci/updatecli/values.yml
index 5d1e74685..62d86073a 100644
--- a/.ci/updatecli/values.yml
+++ b/.ci/updatecli/values.yml
@@ -1,9 +1,9 @@
 github:
-  owner: "elastic"
+  owner: "your-gh-avatar"
   repository: "apm-agent-java"
   apm_repository: "apm"
   apm_data_repository: "apm-data"
-  branch: "main"
+  branch: "your-branch"
 specs:
   apm_data_path: "input/elasticapm/docs/spec/v2"
   apm_json_path: "tests/agents/json-specs"

Then you can run this PR locally once you have installed updatecli
$ gh pr checkout 3497
$ GITHUB_WORKSPACE=/tmp \
  GIT_USER="foo" \
<EMAIL_ADDRESS>\
  GITHUB_TOKEN=$(gh auth token) \
  updatecli apply --config .ci/updatecli/updatecli.d --values .ci/updatecli/values.yml --debug

sorry, I meant "how we could test this", not change it :facepalm: , I'll try the commands you've suggested here by artificially reverting those spec files to an older version.

no worries :)

I'll try the commands you've suggested here by artificially reverting those spec files to an older version.

👍
Quick one, you can branch off one old release and use that branch name in the values.yml, though the name of the branch should exist in all the forked repositories (APM Agent Java, apm and apm-data)

@elasticmachine run elasticsearch-ci/docs

Hi @v1v I haven't been able to find time to test this, do you think it's risky to merge it as-is and adjust with follow-up PRs if needed later ?

Hi @v1v I haven't been able to find time to test this, do you think it's risky to merge it as-is and adjust with follow-up PRs if needed later ?

It's not risky as far as I can see; if something goes wrong, we will receive a notification in Slack anyway, and we can solve it.
I need your 👀 again after refactoring the shell step with a native updatecli support to turn off appending the sha commit; see https://github.com/elastic/apm-agent-java/commit/8e866912a0c454dde3aaf93ae4fa61468bce07a7

I'm wondering if it would be possible to have the updatecli pipeline in another single place and the values in the respective repos.
In case of changes, we would only have to update the pipeline in a single place.
I'm aware that having it on the consumer side was the initial idea, but I was still wondering what you think about it.
WDYT?

WDYT?

I thought about it, but we don't need it since there are no new APM Agents that often. Hence, as of today, adding such automation will not provide many benefits, plus the caveats with the support for the cross-project GitHub PR creation.
As you mentioned, we used to have a centralised approach in the past, and we moved to a decentralised approach to let teams manage their things.
In any case, if, for some reason, we need to change the same workflow again, we could re-evaluate this question and put the required tooling around it.


How to add extra fields and table to User Model

I am new to Django I am working on eCommerce website I want to modify/customize existing user model and some new tables to DB e.g below
monthList = (
('Jan','Jan'),
('Feb','Feb'),
('Mar', 'Mar'),
('Apr', 'Apr'),
('May', 'May'),
('Jun', 'Jun'),
('Jul', 'Jul'),
('Aug', 'Aug'),
('Sep', 'Sep'),
('Oct', 'Oct'),
('Nov', 'Nov'),
('Dec', 'Dec'),
)
stateChoices = (
('MA', 'Massachusetts'),
('RI', 'Rhode Island'),
('CT', 'Connecticut'),
('NH', 'New Hampshire'),
('ME', 'Maine'),
('AK', 'Alaska'),
('AL', 'Alabama'),
('AR', 'Arkansas'),
('AS', 'American Samoa'),
('AZ', 'Arizona'),
('CA', 'California'),
('CO', 'Colorado'),
('DC', 'District_of_Columbia'),
('DE', 'Delaware'),
('FL', 'Florida'),
('GA', 'Georgia'),
('GU', 'Guam'),
('HI', 'Hawaii'),
('IA', 'Iowa'),
('ID', 'Idaho'),
('IL', 'Illinois'),
('IN', 'Indiana'),
('KS', 'Kansas'),
('KY', 'Kentucky'),
('LA', 'Louisiana'),
('MD', 'Maryland'),
('MI', 'Michigan'),
('MN', 'Minnesota'),
('MO', 'Missouri'),
('MP', 'Northern_Mariana_Islands'),
('MS', 'Mississippi'),
('MT', 'Montana'),
('NA', 'National'),
('NC', 'North Carolina'),
('ND', 'North Dakota'),
('NE', 'Nebraska'),
('NJ', 'New Jersey'),
('NM', 'New Mexico'),
('NV', 'Nevada'),
('NY', 'New York'),
('OH', 'Ohio'),
('OK', 'Oklahoma'),
('OR', 'Oregon'),
('PA', 'Pennsylvania'),
('PR', 'Puerto Rico'),
('SC', 'South Carolina'),
('SD', 'South Dakota'),
('TN', 'Tennessee'),
('TX', 'Texas'),
('UT', 'Utah'),
('VA', 'Virginia'),
('VI', 'Virgin Islands'),
('VT', 'Vermont'),
('WA', 'Washington'),
('WI', 'Wisconsin'),
('WV', 'West Virginia'),
('WY', 'Wyoming'),)
class Profile(models.Model):
user = models.ForeignKey(User)
fName = models.CharField(max_length=200, verbose_name='First Name')
lName = models.CharField(max_length=200, verbose_name='Last Name')
telephone = models.CharField(max_length=15, verbose_name='Telephone Number')
def __str__(self):
    return '%s %s' % (self.fName, self.lName)

class ShippingAddress(models.Model):
profile = models.ForeignKey(Profile, blank=True, null=True)
name = models.CharField(max_length=200)
telephone = models.CharField(max_length=200, blank=True, null=True)
email = models.EmailField(max_length=200, blank=True, null=True)
address = models.TextField()
preferred = models.BooleanField(default=False)
class Meta:
    verbose_name='Shipping Address'
    verbose_name_plural='Shipping Addresses'

def __str__(self):
    return self.name

class BillingAddress(models.Model):
profile = models.ForeignKey(Profile, blank=True, null=True)
name = models.CharField(max_length=200)
telephone = models.CharField(max_length=200, blank=True, null=True)
email = models.EmailField(max_length=200, blank=True, null=True)
address = models.TextField()
preferred = models.BooleanField(default=False)
class Meta:
    verbose_name='Billing Address'
    verbose_name_plural='Billing Addresses'

def __str__(self):
    return self.name

How could I achieve this in cookiecutter-django?  please help me or redirect me to the solution if already provided I would be very thankful to all of you.

Hey @s4starb4boy,
It is good you are using Cookiecutter Django but I would like to give you some advice.

The issue you have is a Django one, not a Cookiecutter Django problem.
This is a "how to build" question, meaning that you will get better help from a place like Stackoverflow. This board is for issues that come up between the parts that make up Cookiecutter Django.
If you have a money-paying project and yet you would like free help, you will need to do a bit more homework on your end or pay someone to spend time pair-programming with you while building it.
Why? Going back to 1., there is be no reason to begin with Cookiecutter Django and yet you area beginner in using Django. This will be very frustrating for you.

I hope I did not come out as not being empathetic with your situation but I think this is better for you than all of us here being silent about your question.
What do you think?

"This board is for issues that come up between the parts that make up Cookiecutter Django." being a newbie I really do apologize for my question. and Thanks for your advice  >"Going back to 1., there is be no reason to begin with Cookiecutter Django and yet you area beginner in using Django. This will be very frustrating for you." though it discouraged me but I'd keep doing and find an other forum for help.Thx

As @Afrowave said, it's a general Django topic, not specific to Cookiecutter Django.
These types of questions would reach a far broader audience elsewhere than on this issue tracker, where only a handful of people are notified. Here are a few places I would suggest:

The official Django documentation, I think the part about migrations might help you.
The Django forum
The django-users google group
Stackoverflow with the tag #django

Stackoverflow or not, I would recommend following some of their tips to ask a good question. Please keep in mind that you're asking people for some of their time.
English is not my first language (like many out there), and reading your original post, I'm not sure I understand your question.
I'm going to close this issue, it's out of scope of the project, I hope the links I gave will be helpful.

Thanks all of you. I've already found the solution. you can delete my question/post/thread or whatever you want to.


Total Assets show "-" with Argent wallet connected on v2 vaults page

Description
When using WalletConnect (Argent/iOS with Brave/MacOS), wallet connects successfully but does not seem to pull any data; TOTAL ASSETS remains only with a "–".
Steps to reproduce

Connect to yearn.finance/vaults using WalletConnect via Argent

Expected behavior
The vaults page should display total assets held in each vault, and this works correctly for me when I use MetaMask in the same browser.
Screenshots

Versions

React-Boilerplate:
Node/NPM:
Browser: Brave 1.18.78

Resolved

Resolved


Feature/categories

Coverage increased (+5.2%) to 78.884% when pulling 7c51260990f1b126b454bb6b6434f43ac2c7ef9b on feature/categories into c16392ec3fd93300a74ab066edc0f2d451ce2e90 on master.

Coverage increased (+4.9%) to 78.638% when pulling c10adac637d621e33b0bc479c848d00e7a02dd19 on feature/categories into c16392ec3fd93300a74ab066edc0f2d451ce2e90 on master.

Coverage increased (+9.3%) to 83.026% when pulling 01bafbc45bf05767e5336a8517663e31e5b6e166 on feature/categories into c16392ec3fd93300a74ab066edc0f2d451ce2e90 on master.


Various fixes to Modelica generator

Added missing features, fixed some bugs, improved user feedback and added line-by-line verification.

Difficult to give useful comments on this code (parsing modelica)  without spending a lot of time trying to understand what it supposed to do.


"error"="acme: urn:ietf:params:acme:error:malformed: No order for ID

hi
i got the following error during renewal challenge , what do i wrong ?
E0526 22:56:33.221458       1 controller.go:131] cert-manager/controller/orders "msg"="re-queuing item  due to error processing" "error"="acme: urn:ietf:params:acme:error:malformed: No order for ID<PHONE_NUMBER>" "key"="gitlab/gitlab-gitlab-tls-3122977204"                │
│ E0526 22:56:33.311150       1 controller.go:131] cert-manager/controller/orders "msg"="re-queuing item  due to error processing" "error"="acme: urn:ietf:params:acme:error:malformed: No order for ID<PHONE_NUMBER>" "key"="gitlab/gitlab-minio-tls-3641147656"                 │
│ E0526 22:56:35.117417       1 controller.go:131] cert-manager/controller/orders "msg"="re-queuing item  due to error processing" "error"="acme: urn:ietf:params:acme:error:malformed: No order for ID<PHONE_NUMBER>" "key"="gitlab/gitlab-registry-tls-300638771"

Can you get us more information:

your (Cluster)Issuer configuration
cert-manager version and installation method
Kubernetes version
a describe of the challenge and order resources

Thanks
/triage support

hi @meyskens
first of thx for quick reply :) , i installed cert-manager with the gitlab helm chart automatically. if u need any further informations - no problem! i run the commands to fetch all necessary informations for you.

your (Cluster)Issuer configuration

 λ kubectl describe issuer gitlab-issuer -n gitlab
Name:         gitlab-issuer
Namespace:    gitlab
Labels:       app=certmanager-issuer
              chart=certmanager-issuer-0.1.0
              heritage=Tiller
              release=gitlab
Annotations:  API Version:  certmanager.k8s.io/v1alpha1
Kind:         Issuer
Metadata:
  Creation Timestamp:  2020-02-26T14:09:08Z
  Generation:          2
  Resource Version:    1273250
  Self Link:           /apis/certmanager.k8s.io/v1alpha1/namespaces/gitlab/issuers/gitlab-issuer
  UID:                 5f7b7549-8039-46cb-ba0c-752e0ea6dfe5
Spec:
  Acme:
    Email<EMAIL_ADDRESS>    Private Key Secret Ref:
      Name:  gitlab-acme-key
    Server:  https://acme-v02.api.letsencrypt.org/directory
    Solvers:
      http01:
        Ingress:
          Class:  gitlab-nginx
      Selector:
Status:
  Acme:
    Last Registered Email<EMAIL_ADDRESS>    Uri:                    https://acme-v02.api.letsencrypt.org/acme/acct/79118445
  Conditions:
    Last Transition Time:  2020-02-26T14:09:11Z
    Message:               The ACME account was registered with the ACME server
    Reason:                ACMEAccountRegistered
    Status:                True
    Type:                  Ready
Events:                    <none>

cert-manager version and installation method

version: quay.io/jetstack/cert-manager-controller:v0.10.1
install method: through gitlab helm chart deployment
λ kubectl describe deployment gitlab-cert-manager  -n gitlab
Name:                   gitlab-cert-manager
Namespace:              gitlab
CreationTimestamp:      Wed, 26 Feb 2020 15:08:59 +0100
Labels:                 app=cert-manager
                        app.kubernetes.io/instance=gitlab
                        app.kubernetes.io/managed-by=Tiller
                        app.kubernetes.io/name=cert-manager
                        helm.sh/chart=certmanager-v0.10.1
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=cert-manager,app.kubernetes.io/instance=gitlab,app.kubernetes.io/managed-by=Tiller,app.kubernetes.io/name=cert-manager
Replicas:               1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:           app=cert-manager
                    app.kubernetes.io/instance=gitlab
                    app.kubernetes.io/managed-by=Tiller
                    app.kubernetes.io/name=cert-manager
                    helm.sh/chart=certmanager-v0.10.1
  Annotations:      prometheus.io/path: /metrics
                    prometheus.io/port: 9402
                    prometheus.io/scrape: true
  Service Account:  gitlab-cert-manager
  Containers:
   certmanager:
    Image:      quay.io/jetstack/cert-manager-controller:v0.10.1
    Port:       9402/TCP
    Host Port:  0/TCP
    Args:
      --v=2
      --cluster-resource-namespace=$(POD_NAMESPACE)
      --leader-election-namespace=$(POD_NAMESPACE)
      --webhook-namespace=$(POD_NAMESPACE)
      --webhook-ca-secret=gitlab-cert-manager-webhook-ca
      --webhook-serving-secret=gitlab-cert-manager-webhook-tls
      --webhook-dns-names=gitlab-cert-manager-webhook,gitlab-cert-manager-webhook.gitlab,gitlab-cert-manager-webhook.gitlab.svc
    Environment:
      POD_NAMESPACE:   (v1:metadata.namespace)
    Mounts:           <none>
  Volumes:            <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Progressing    True    NewReplicaSetAvailable
  Available      True    MinimumReplicasAvailable
OldReplicaSets:  <none>
NewReplicaSet:   gitlab-cert-manager-6889cf5595 (1/1 replicas created)
Events:          <none>

Kubernetes version

 λ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40", GitTreeState:"clean", BuildDate:"2020-05-20T12:52:00Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:12:17Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"linux/amd64"}

a describe of the challenge and order resources

the challenge is to renewal my certs automatically handled by cert-manager
 λ kubectl get cert  -n gitlab
NAME                  READY   SECRET                AGE
gitlab-gitlab-tls     False   gitlab-gitlab-tls     90d
gitlab-minio-tls      False   gitlab-minio-tls      90d
gitlab-registry-tls   False   gitlab-registry-tls   90d

i had these my first renewal challenge , and it failed with the logs in my first comment.

v0.10 is already very old, a lot of things got fixed since then. If you could i suggest into looking to upgrade.

i know maybe that is the reason for a "malformed" request to the CA ... but i dont know how to upgrade the included cert-manager in the helm chart, it was installed automatically how i said. (https://docs.gitlab.com/charts/)
maybe set the image tag in the deployment set to v0.15.0 this is the image: https://quay.io/repository/jetstack/cert-manager-controller?tag=latest&tab=tags

I'd advise you to not use the GitLab installation of cert-manager. It's out of date, and I am not certain what their upgrade plan is just yet.

@munnerz We're working on said upgrade path in this MR. We have to be careful of our upgrade paths for customer impact.
We do directly support using an external cert-manager instance, and document how to use it.


AML - how to use secrets in runs - Typo in secret import code fragment

Getting Secrets section, step 2 there is a typo in the code fragment.
The keyvault import statement should pluralize "secrets": from azure.keyvault.secrets import SecretClient, as seen on the packages pypi page: https://pypi.org/project/azure-keyvault-secrets/

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

ID: d638e5c5-1d5b-a257-298a-d8f1b45a8086
Version Independent ID: 9a99c4bc-b9de-1b8c-a338-1121f166bc00
Content: Authentication secrets - Azure Machine Learning
Content Source: articles/machine-learning/how-to-use-secrets-in-runs.md
Service: machine-learning
Sub-service: enterprise-readiness
GitHub Login: @rastala
Microsoft Alias: roastala

@jomalsan
Thanks for your feedback! We will investigate and update as appropriate.

@jomalsan
Thanks for reporting this! We have created a PR for this issue and the changes should go live soon.


remove FunctionCallbackInfo::Callee for nodejs >= 10

Fixes #788
Removed from V8 in https://github.com/v8/v8/commit/bc8c97c72a4f5a72015f06ea60cc78e23bd5d300
Which maps to nodejs 10.0.0 (table)

I'd just add a note to the docs.  You don't even to touch any code because thanks to the magic of templates it only fails to compile when you use the function but not otherwise.

Really? I had no idea templates were able to do that.
So should I delete the commit that touches the code? I don't mind doing so, but it kinda adds a nice self-documenting-code touch. Also it makes the error more user-friendly, because if the user inadvertently uses info.Callee() it doesn't point to an error in nan code.

So should I delete the commit that touches the code?

No strong opinion.  I'll let one of the other maintainers make the call.

While I would prefer reimplementing the sought behavior, I do not currently have time to do it.  I think the best option with least effort is to deprecate Callee regardless of Node version and having it conditionally removed for Node 10+ like now, to reduce the number of spurious bug reports that come in.
I will see if I can find some time later this week to look into reimplementing it by inspecting the call stack in addition to a deprecation, since I think consistency of observable behavior is important.

@kkoopa Keep in mind that needs V8 changes first (method to get the v8::Function for a stack frame) so the first 10.x releases will remain broken, whatever happens next.

Thanks for pointing that out. I missed that part while skimming the related thread.
In that case, the previously mentioned way is probably the best.


WiFi coexistence

Have you been able to get A2DP to coexist with WiFi? The ESP32 docs say it is possible, but I haven't succeeded so far. I haven't tried a simple test case yet - I have been trying to shoe-horn A2DP into an existing, fairly complex application, but just knowing if someone has succeeded would be useful.

I tried and failed and finally came to the conclusion that this is not working for the bandwidth that A2DP needs.
see the discussion at https://esp32.com/viewtopic.php?t=6707
An alternative migth be to connect 2 devices - one doing bluetooth and a separate one for Wifi (eg. ESP8277)…

On 19 Dec 2020, at 17:05, Paul Andrews<EMAIL_ADDRESS>wrote:
Have you been able to get A2DP to coexist with WiFi? The ESP32 docs say it is possible, but I haven't succeeded so far. I haven't tried a simple test case yet - I have been trying to shoe-horn A2DP into an existing, fairly complex application, but just knowing if someone has succeeded would be useful.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

It appears to be a heap size issue. I gradually built up the sophistication of my test application and monitored the free heap. Each time, if the free heap falls below around 48k, things start to go wrong.
You can free up around 8k by writing your own btStart() that only initializes ESP_BT_MODE_CLASSIC_BT mode, and then calling calling esp_bt_mem_release(ESP_BT_MODE_BLE) beforehand.
I'm not sure why everything starts to go wrong when the ESP32 is reporting 48k free heap, you would think that would be enough, and it is hard to believe it is so fragmented as to be useless.
As it is, it is really only possible to write a basic application that uses both A2DP and WiFi. Maybe I need to investigate a chip with PSRAM.

I don’t want to spam, but i think it is worth leaving this link here for anyone who comes after https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/design-considerations.html


Props are not working correctly

I wrote the following code in the "head" component:

  {{ text }}

And called this component from another file:

<x-head text='some text'></x-head>

After starting, I got the following error:

Error in plugin "gulp-posthtml"
Message:
    'text' is not defined
Details:
    domainEmitter: [object Object]
    domainThrown: false

Stack:
ReferenceError: 'text' is not defined
    at placeholders (G:\gulp_multitool\node_modules\posthtml-expressions\lib\placeholders.js:73:19)
    at G:\gulp_multitool\node_modules\posthtml-expressions\lib\index.js:198:14
    at Array.reduce (<anonymous>)
    at walk (G:\gulp_multitool\node_modules\posthtml-expressions\lib\index.js:185:27)
    at G:\gulp_multitool\node_modules\posthtml-expressions\lib\index.js:229:22
    at Array.reduce (<anonymous>)
    at walk (G:\gulp_multitool\node_modules\posthtml-expressions\lib\index.js:185:27)
    at G:\gulp_multitool\node_modules\posthtml-expressions\lib\index.js:229:22
    at Array.reduce (<anonymous>)
    at walk (G:\gulp_multitool\node_modules\posthtml-expressions\lib\index.js:185:27)

I use your library in gulp, so I connect it:
.pipe(posthtml([
      component({
        root: './src',
      }),
    ], {}))

This is very strange, because I wrote +- just as it is written in the documentation.
If I delete the line {{ text }}, it works (the head.html file will be connected).
I hope I just overlooked something.
The full file code of index.html and head.html:
Details
<!DOCTYPE html>

{{ text }}

  <meta charset='UTF-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <meta name='viewport' content='width=device-width, initial-scale=1.0'>

  <meta name='format-detection' content='telephone=no'>

  <meta name='description' content='description'>
  <meta name='theme-color' content='#000000'>
  <link rel='icon' href='./img/favicon.svg'>
  <link rel='mask-icon' href='./img/favicon.svg' color='#000000'>

  <title>
  </title>

  <link rel='stylesheet' href='styles/general/nullStyle.css'>
  <link rel='stylesheet' href='styles/general/fonts.css'>
  <link rel='stylesheet' href='styles/general/header.css'>
  <link rel='stylesheet' href='styles/general/footer.css'>
  <link rel='stylesheet' href='styles/general/general.css'>

<x-head text="some text"></x-head>

Can you please provide a repo with the same setup you are using so that I can reproduce this issue?

I made a branch of my repository with project files.
It is started by installing node_modules (I'm not sure if npm ci will install everything correctly, dev branch ¯\(ツ)/¯), and then by the gulp command.
You may be interested in debugging the file ./gulp/html.js .
https://github.com/Ulyanov-programmer/gulp_multitool/tree/temporary

I don't see posthtml installed here https://github.com/Ulyanov-programmer/gulp_multitool/blob/master/package.json

You looked in the master branch, switch to temporary (in theory, you should have been sent to it by the link).

The problem happen because in  gulp/paths.js you add to process all .html files, so also the head.html is being processed as HTML entry point. You have to move this file inside components folder as you have configured to skip this folders from being processed by gulp
If you try to set path to process only index.html then it's works fine.
In gulp/paths.js change paths.src.html:
  scr: {
    html: [`${source}/index.{html,htm}`, `!${source}/components/*.{html,htm}`],
  },

then it works fine. Or just move inside components.
Apart this, for a layout file I would suggest below approach:
// src/layout.html

<!DOCTYPE html>

  <meta charset='UTF-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>

  <stack name="meta"></stack>
  <title>{{ title }}</title>

 <stack name="styles"></stack>

 <slot:header></slot:header>

    <yield></yield>

 <stack name="scripts"></stack>

Then use your layout when creating a page
// src/page.html

<x-layout title="My page">

  <fill:header>Header content</fill:header>

Main content

</x-layout>

<push name="meta">
<meta name='keywords' content='keyword1,'>
</push>

<push name="styles">

</push>

<push name="scripts">

</push>

I didn't test above code, so it may contain some issues in case you just copy paste.

I have yet to fully familiarize myself with the library (I just installed it, I haven't really tried it), thank you for the tips on page layout!
There is no need for a strong path change, I just moved the head to the components folder.
For those looking for an answer: I moved the head.html file to a folder that is ignored by gulp.

For those looking for an answer: I moved the head.html file to a folder that is ignored by gulp.

Yes that it's the right way. However in that case you have also to set folders options
.pipe(posthtml([
      component({
        root: './src',
        folders: ['components']
      }),
    ], {}))

or use your component with `<x-components.head>`


Prettify ui

This gives several UI changes on components on the Homepage and Party Page.

FYI @nancruz


Consider record naming/querying scheme

Various upgrades that might come along with #57 and #58 would benefit from being able to semantically refer to a specific record (without just indexing).
Unclear how this would work though - if one parameter set gets used in multiple records, it's not as simple as using the name of the parameter set.
A record is sort of a subset of a parameter set though, so maybe records can optionally be initialized with a name that refers to what that record is likely going to include.
E.g. "my_param_set.data.validation_data" is the validation_data artifact from the record named "data" under the "my_param_set" parameter set

An alternative to this would be that it may only make sense for a parameter set to have more than one record if e.g. we were only using data parameters to have a data record, (needing the ability to "zero out" all except one portion of  the parameters, see #63 and #11 ) so in that case if it was the "data" parameters only that got passed into a record, then you would reference it specifically with my_param_set.data.validation_data

For records that have None parameters, these are probably aggregates, and likely there's only the one set of artifacts from it, so you can maybe just call by the artifact name directly (and if there's more than one, just return as an array. Really this could be done as another alternative to specifying by parameter set name too, though that should probably still be an option.)


Implemented postgres database for database package

Closes: #332  and #337

Tests are failing too -
https://github.com/astro-projects/astro/runs/6369868357?check_suite_focus=true#step:10:564

@kaxil - I think the default connection is not configured correctly. connection string - postgresql://postgres:airflow@postgres/airflow
'postgres' is added in place of IP/localhost etc. Do we need to override the connection object with the correcnt location?

"postgres" for hostname will work if their is a postgres container, example: https://github.com/astronomer/astronomer-providers/blob/main/dev/docker-compose.yaml#L15


Make UpSet plot wider

The UpSet plot at https://halbritter-lab.github.io/kidney-genetics/analyses-plots.html#upset-plot-of-merged-analyses-sources is displayed very narrow and the numbers are not readable.
Adapt the plot to display nicer.

We already did it once, but the plot is displayed quite narrow again. Make the plot wider and ensure that the changes are safed correctly.

[ ] made plot wider


Consider creating easy-to-use library version/crate

Hi. When I was searching for the Rust-native jq library (several months ago), I was surprised that I only found CLIs. But in a desperate attempt, I tried to "reverse-engineer" the CLI. I don't remember if jaq was the only viable option or not, but I chose it. It was extremely hard as there was almost no documentation for my case, so I started bisecting the CLI crate. In the end, the "boilerplate" became pretty huge. It definitely can be reduced if a dedicated library crate is used, but there is none.
the boilerplate
fn apply_json_filter<T>(json: serde_json::Value, filter: &str) -> Result<T>
where
    T: DeserializeOwned,
{
    let mut defs = ParseCtx::new(vec![]);
    defs.insert_natives(jaq_core::core());
    defs.insert_defs(jaq_std::std());

    let (main_filter, errs) = jaq_parse::parse(filter, jaq_parse::main());
    if !errs.is_empty() {
        return Err(make_error_message_from_vec(
            "There were some errors parsing the filter command:\n",
            errs,
            |e| format!("{}\n", e),
        ));
    }
    if main_filter.is_none() {
        return Err(Error::msg(
            "Main filter is `None` For some reason, even though there were no errors.",
        ));
    }

    let finished_filter = defs.compile(main_filter.unwrap());
    if !defs.errs.is_empty() {
        return Err(make_error_message_from_vec(
            "There were some errors compiling the main filter:\n",
            defs.errs,
            |e| format!("Error parsing characters in range: {:?}\n", e.1),
        ));
    }

    let inputs = RcIter::new(core::iter::empty());

    let out: Vec<_> = finished_filter
        .run((Ctx::new([], &inputs), Val::from(json)))
        .collect();

    if out.iter().any(|x| x.is_err()) {
        return Err(make_error_message_from_vec(
            "Failed to filter JSON object(s):\n",
            out.iter().filter(|x| x.is_err()).collect(),
            |e| format!("{:?}\n", e),
        ));
    }
    let objects: Vec<_> = out
        .into_iter()
        .map(|x| serde_json::Value::from(x.unwrap()))
        .collect();

    let filtered_json = if objects.len() == 1 {
        objects.into_iter().next().unwrap()
    } else {
        serde_json::Value::Array(objects)
    };

    serde_json::from_value(filtered_json).map_err(Error::from)
}

My implementation required at least 4 separate crates: jaq-interpret, jaq-parse, jaq-core, jaq-std (in addition to the serde and serde_json). I really hope that a library crate can be created that can provide good defaults in addition to some configuration (for optimizing performance and dependency tree). I also noticed that I'm not the first one who faced this problem and created an issue. Perhaps my function can be a starting point.

I agree with you. The current boilerplate is a bit too much for common use cases. I will think about how to make this better.

To understand your requirements better: Do you need precise parse error messages, or are you fine with getting some Option<Filter>? Are you using jaq for a fixed set of filters? Do you need to report errors to users?

I used my function for one specific type: Vec<struct>. But I think it would work for any other type just fine.
The filter is just a non-mutable raw string slice. It uses select() and del(). I think that in the future there can be a project where I need to use user input for a filter. Being able to choose a subset of things that can be used in a filter if it will reduce the file size (maybe slim down dependency tree) or increase performance would be a neat thing to have. By default, a Default (trait)/Full set should be used (either by providing some enum/type or having a separate function name for it).
Since there could be a few different errors when applying a filter, I would prefer having an option to distinguish between the errors. Because it will help me (as a developer) figure out where did I mess up. But some errors can be useful for the end user as well, so using Result would be nice. Plus, the ? operator is a killer feature that a lot of people enjoy using. Result can always be converted to Option.
Perhaps some internal errors are not useful for the developer or the user. Such errors (in different places of the jaq's boilerplate) can be merged under the same error. But I used this library over a month ago (for a few days) so I don't remember any specifics about the errors. You know them better anyway.


Functioning of require.ensure()

Discussed in https://github.com/webpack/webpack/discussions/17849

Originally posted by jashan777 December  6, 2023
In require.ensure() , if i change the callback function syntax to a arrow function syntax withouth the require parameter, everything works without breaking.
from
require.ensure(['b'], function(require){

var c = require('c');

});

to
require.ensure(['b'], () => {

    var c = require('c');

});

can someone explain me the reason, why implementation of the require function is sent as a parameter to this function (callback function) as given in the documentation ?
https://webpack.js.org/api/module-methods/#requireensure

I see there are many examples in webpack repo, where at some places they have "require" as parameter....while other places they don't (see one such example below).

The webpack docs is not very clear about the require implementation as parameter.....if it is an ordinary require or does something different.

I see there are many examples in webpack repo, where at some places they have "require" as parameter....while other places they don't (see one such example below).
The webpack docs is not very clear about the require implementation as parameter.....if it is an ordinary require or does something different.

agreed webpack docs are no so clear about require implementation as parameter

Looks like swc does it https://github.com/swc-project/swc/issues/7505
I see https://github.com/swc-project/swc/issues/7505#issuecomment-1700860794 swc team doesn't want to fix it, you can try to send a PR with the fix, sorry, we really can't do something here, anyway feel free to feedback


[FLINK-11701][table-planner-blink] Introduce an abstract set of data formats

What is the purpose of the change
Blink uses an abstract set of data formats to make internal calculations use the binary format as much as possible. This minimizes the serialization overhead and java object overhead.
Brief change log
Data format corresponding relation:

BaseRow(BinaryRow and GenericRow) <=> Row
int <=> Date //Flink used to use int in the calculation, but the remaining in Row is still Date, we will change it completely.
int <=> Time
long <=> Timestamp
byte[] <=> byte[]
primitive type keep same, but use less boxed type.

We decided to build BinaryRow on multiple Segments because we wanted fine-grained memory control. For fast access, we keep the primitive type on a single Segment.
Verifying this change
Unit test.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (yes)
If yes, how is the feature documented? (JavaDocs)

After https://github.com/apache/flink/pull/7790 merge

Could you also change the commit message and the title after moving to runtime?

Fix comments

merging...


⚠ Mobitopup has degraded performance

In c9d1c42, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 3410 ms

Resolved: Mobitopup performance has improved in 19e0951 after 14 minutes.


CDC Violations in RISC V core for ROTSS

Hi Caliptra Team,
1. We are observing CDC violations in Caliptra ijtag part (for all dr_reg[*]). I attached Spyglass schematic view in the attached pdf. Observations are:
a. Although ICG having same clk as an input for both rdc_clk and un_core_clk , the un_core_clk used for generating dmi_reg_en and the flop which is sampling this en operating on rdc_clk are on same clock domain.
b. dmi_reg_en is synchronized on the un_core_clk gated clk and pass through some combo logic before getting sampled by the destination flop.
c. Is there any sequence in dmi_reg_addr and dmi_reg_en. We see some combo logic before it is taken out from rvtop which might also cause as they are not registered at the boundary?
  Can you please check the attached schematic for one of the violation.

jtag_dr_violation_v1.pdf
             2. We are also observing that in one of the el_dbg RTL, reset synchronization is done which is not in standard format. Din is connected to rst_l and rst_l is connected to some other rest. Can you please check this and provide clarification for such code, if intended.

RTL Path: riscv_core/veer_el2/rtl/dbg/el2_dbg.sv
Code:
// synchronize the rst
rvsyncss #(1) rstl_syncff (.din(rst_l), .dout(rst_l_sync), .clk(free_clk), .rst_l(dbg_rst_l));

JTAG DR address/data are qualified by dmi_reg_en and considered pseudo-static.
cdc signal reg_wr_data  -module dmi_wrapper -stable
cdc signal reg_wr_addr  -module dmi_wrapper -stable

Reset is qualified by security state and appropriate unlock and is intentionally non-standard.

Hi Stewart,
Can u please check this CDC Violation reported in ROTSS using spyglass tool and let us know the fix.
[7823]   Ac_unsync02                                           Error       /nsfs/devarsim1/padma/devar_dec28/subip/rot_ss/subip/caliptra-rtl-1.0-rc1/src/riscv_core_syn/veer_el2/rtl/dmi/rvjtag_tap.v                                                linenumber 158      2     Unsynchronized Crossing: destination flop devar_top.devarcore.u_rotss.u_caliptra.rvtop.dmi_wrapper.i_jtag_tap.sr[33:2], clocked by devar_top.devarcore.u_daptop.rot_jtag_cs_tck, source flop devar_top.devarcore.u_rotss.u_caliptra.rvtop.veer.dbg.dmi_rddata_reg.\genblock.genblock.dff .dout[31:0], clocked by devar_top.devarcore.u_cgubootfsm.u_devar_clock_control.u_hic_rot_clk_gating.ECK. Reason: Destination instance is driving multiple paths [Total Sources: 5 (Number of source domains: 2)].
It states unsynchronized crossing please check and let us know as quickly as possible.


Add more logs to try to resolve "cb() not called" error

Please review @Jag96
Details

Updated to use correct node on iOS (Node 14.x)
Turned on "silly" debug mode, which logs the entire kitchen sink to hopefully spot the cause of the "cb error"

Fixed Issues
Related https://github.com/Expensify/Expensify/issues/152345
Tests

Run npm install
Verify it installs correctly 👍

Tested On

[ ] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

npm has a package.json file and a package-lock.json file. It seems you updated one without the other, which is usually a sign of a mistake. If you are updating a package make sure that you update the version in package.json then run npm install

Looks like some tests are failing, I will take a look at them soon 🕵

Ok so I reverted all the package-lock changes because I don't think it's necessary and it ended up updating a bunch of libraries that I don't know if we need to update. This is now just adding a bunch of logs to hopefully help us track this down.


Field "Creditor Identifier" in table "Bank Account" and field "Direct Debit Mandate ID" in table "Customer Bank Account" not available in Visual Studio Code

Field "Creditor Identifier" in table "Bank Account" and field "Direct Debit Mandate ID" in table "Customer Bank Account" are not availabe in Visual Studio Code. Docker container is CU14 and AL Language is from CU13. The fields are available in the webclient on de Customer Bank Account Card and Bank Account Card.

@StanislawStempin @JesperSchulz, can someone elaborate on this issue?
Thank you in advance.

I just checked our latest code and cannot find any Creditor Identifier field. What version are you using? Which country? In which version did you last see the field? Do they maybe come from an extension?

Thank you for the quick response.
I believe the fields are part of the dutch localization.
Version: 11.0.26893, Netherlands.
AL Language version: 0.13.68736
Docker container version: microsoft/dynamics-nav:2018-nl-ltsc2019
Object versions:
Table 270, Bank Account, NAVW<IP_ADDRESS>893,NAVNL<IP_ADDRESS>893
Table 287, Customer Bank Account, NAVW<IP_ADDRESS>893,NAVNL<IP_ADDRESS>893

I just checked the latest build of version 11.0 of our Dutch application. Both fields exist and should be available for extension development. @atoader, any idea what's going on here?

@atoader , have you had te time to take a look?
Thank you in advance.

Hi! It seems that you are not using the latest developer preview. Could you please open a support case with CSS? They will guide you through the process of reproducing this issue and they will open a request for hotfix with us.


Camper bot - Wiki Migration

As discussed earlier with @Rafase282 in the chat:
Camperbot will no longer be able to suggest any of the wiki articles including:

Solution hints
Rooms
Articles
Any other help topic

Hence the course of action is now to:

[x] Close all the open issues are pull requests with after a thorough audit.
[ ] Fix any issues relevant to chat and clean up this repository of the wiki related logic.
[x] If it receives any command for wiki, respond with a migration message.
[ ] Deploy the bot.

Note : Its functionality to thank people will remain as such.
But any relevant help links should be removed or changed to forum links if available
/cc @FreeCodeCamp/issue-moderators
Refer https://github.com/FreeCodeCamp/FreeCodeCamp/issues/9731

what do you mean he no longer works?

@JasonXiao2007 the wiki has been moved to https://forum.freecodecamp.com and Dear @camperbot :alien: shouldn't and is unable to fetch from FreeCodeCamp repository wiki https://github.com/FreeCodeCamp/FreeCodeCamp/wiki as it has been disabled.

@abhisekp Hey, on the gitter chat, the bot responds with "no entry" for every help command. Instead of that "no entry for whatever" text, would it make sense to display an updated text which reads:
"the wiki has been moved to https://forum.freecodecamp.com"
Just a suggestion. :)

@JohnTendik yes - I think that will be better. Even better would be for the wiki could pull from the forum. Here's an example forum API endpoint: https://forum.freecodecamp.com/c/wiki.json

Should this still be open?

@BerkeleyTrue I think we can close this. Later we can incorporate the new wiki articles into CamperBot but for now we've removed the deprecated wiki from it.


Error during transaction commit: NullPointerException

OrientDB Version, operating system, or hardware.
v2.2.14
Operating System

[ X] Linux
[ ] MacOSX
[ ] Windows
[ ] Other Unix
[ ] Other, name?

Expected behavior and actual behavior
com.stimulus.archiva.domain.aa: Error during transaction commit^M
DB name="archiva$te"
Caused by: com.orientechnologies.orient.core.exception.OStorageException: Error during transaction commit^M
DB name="archiva$te"
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.makeRollback(OAbstractPaginatedStorage.java:2205)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1430)
at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:539)
at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:104)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2783)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2753)
at com.tinkerpop.blueprints.impls.orient.OrientTransactionalGraph.commit(OrientTransactionalGraph.java:182)
..
Caused by: java.lang.NullPointerException: null
at com.orientechnologies.common.directmemory.OByteBufferPool.acquireDirect(OByteBufferPool.java:310)
at com.orientechnologies.orient.core.storage.cache.local.OWOWCache.cacheFileContent(OWOWCache.java:1293)
at com.orientechnologies.orient.core.storage.cache.local.OWOWCache.load(OWOWCache.java:648)
at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.updateCache(O2QCache.java:1110)
at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.doLoad(O2QCache.java:351)
at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.allocateNewPage(O2QCache.java:401)
at com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperation.commitChanges(OAtomicOperation.java:434)
at com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.endAtomicOperation(OAtomicOperationsManager.java:460)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.endStorageTx(OAbstractPaginatedStorage.java:2913)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1421)
... 28 common frames omitted
Steps to reproduce the problem

@jamieb22 it means that your direct memory settings are incorrect for this database and OS can not allocate needed amount of memory.

@jamieb22 also please specify version of database to double check

Yeah, i think you're right. I had just figured it out directly after posting...one of your colleagues suggested to set the following:
export CATALINA_OPTS="-server -Dversion=enterpriseedition -Xloggc:/mnt/archive-four/gc.log -XX:+PrintGCDetails -XX
:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xms6g
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:+UseCompressedOops -XX:CompressedClassSpaceSize=128m -XX:-Use
AdaptiveSizePolicy -XX:InitialCodeCacheSize=48m -XX:ReservedCodeCacheSize=48m -XX:ParallelGCThreads=8 -XX:MaxDirect
MemorySize=8g -Dstorage.diskCache.bufferSize=20480"
When I return it back to
export CATALINA_OPTS="-Dversion=enterpriseedition -Xmx6g -Xms256m -XX:MaxDirectMemorySize=512g -Dgraphdb.cache.size
=64"
it works better. I am still sending unrelated errors in the log however

@jamieb22 I think that after such crash database should be exported to and imported from JSON otherwise you will see many such exceptions. Please make such import and close related issues if they are gone after this step.

Its not easy to do with fifty or so databases on one machine. Some of them are quite largely. It will take weeks to do that. The indexes seem particularly vulnerable to corruption. I am seeing this error everywhere in the logs
java.lang.NullPointerException: null
at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.findBucket(OSBTree.java:1754)
at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.get(OSBTree.java:200)
at com.orientechnologies.orient.core.index.engine.OSBTreeIndexEngine.get(OSBTreeIndexEngine.java:128)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doGetIndexValue(OAbstract
PaginatedStorage.java:1777)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.getIndexValue(OAbstractPa
ginatedStorage.java:1766)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:56)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:40)
at com.orientechnologies.orient.core.index.OIndexAbstractDelegate.get(OIndexAbstractDelegate.java:58)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:262)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:40)
at com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.getVertices(OrientBaseGraph.java:813)
..com.google.api.client.googleapis.batch.BatchUnparsedResponse.parseAndCallback(BatchUnparsedResponse.java
:197)
at com.google.api.client.googleapis.batch.BatchUnparsedResponse.parseNextResponse(BatchUnparsedResponse.jav
a:155)
at com.google.api.client.googleapis.batch.BatchRequest.execute(BatchRequest.java:253)

I am also seeing the following error on one of the instances:
Caused by: java.lang.NullPointerException: null
at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurablePage.deserializeFromDirectMe
mory(ODurablePage.java:164)
at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiBucket.getEntry(OSBTreeBonsaiBuc
ket.java:280)
at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.findBucket(OSBTreeBonsaiLo
cal.java:1359)
at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.loadEntriesMajor(OSBTreeBo
nsaiLocal.java:774)
at com.orientechnologies.orient.core.index.sbtreebonsai.local.OSBTreeBonsaiLocal.getRealBagSize(OSBTreeBons
aiLocal.java:1462)
at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeRidBag.updateSize(OSBTreeRidBag.java:10
29)
at com.orientechnologies.orient.core.db.record.ridbag.sbtree.OSBTreeRidBag.size(OSBTreeRidBag.java:748)
at com.orientechnologies.orient.core.db.record.ridbag.ORidBag.size(ORidBag.java:191)
at com.tinkerpop.blueprints.impls.orient.OrientVertex.getEdges(OrientVertex.java:840)
at com.tinkerpop.blueprints.impls.orient.OrientVertex.getEdges(OrientVertex.java:768)
at com.tinkerpop.blueprints.util.DefaultVertexQuery$DefaultVertexQueryIterable.(DefaultVertexQuery.ja
va:110)
at com.tinkerpop.blueprints.util.DefaultVertexQuery.edges(DefaultVertexQuery.java:80)
at com.tinkerpop.pipes.transform.VertexQueryPipe.processNextStart(VertexQueryPipe.java:113)
at com.tinkerpop.pipes.transform.VertexQueryPipe.processNextStart(VertexQueryPipe.java:19)
at com.tinkerpop.pipes.AbstractPipe.hasNext(AbstractPipe.java:98)
at com.tinkerpop.pipes.transform.OrderPipe.processNextStart(OrderPipe.java:86)
at com.tinkerpop.pipes.AbstractPipe.next(AbstractPipe.java:89)
at com.tinkerpop.pipes.filter.FilterFunctionPipe.processNextStart(FilterFunctionPipe.java:23)
at com.tinkerpop.pipes.AbstractPipe.hasNext(AbstractPipe.java:98)
at com.tinkerpop.pipes.util.Pipeline.hasNext(Pipeline.java:105)
at com.stimulus.archiva.ig.a(MailArchiva:143)
at com.stimulus.archiva.database.DatabaseService.a(MailArchiva:496)
at com.stimulus.archiva.database.DatabaseService.a(MailArchiva:455)
at com.stimulus.archiva.database.DatabaseService.a(MailArchiva:385)
... 19 common frames omitted

@jamieb22 those NPEs are caused by the previous issue we found a reason for it going to fix soon.
Once we fix also direct memory issues we will release next 2.2.15 version of ODB.
You need to rebuild indexes after that or even better to make export/import as I wrote above sorry for that.

Can you please tell me the logic behind why we need to set -XX:MaxDirectMemorySize=512g, when a machine only has say 32GB of physical RAM? I can't figure it out. Also, other databases such as H2 don't require any custom direct memory settings, why is Orient DB any different? Cant you tune the database functioning for the default JVM settings?

@jamieb22 other databases either use Unsafe (such as Cassandra ) which will be deprecated in next releases of work in heap memory which causes GC pauses. -XX:MaxDirectMemorySize that is limit of maximum direct memory like Xmx but not demand to allocate it.

How much direct memory does Orient actually consume? if you take a look at the previous setting that didn't work, maximum direct memory is set to 8GB (see: -XX:MaxDirect MemorySize=8g). Surely, this should be more than sufficient for caches etc.? Why doesn't Orient DB need more than 8GB? I still don't get it.

Unless I am getting the complete wrong end of the stick, I would expect Orient DB consumption of direct memory should be in the KB or MB, not GB.

@jamieb22 the most sufficient for caches to take as much memory as possible in such way you avoid disk IO overhead and work on memory for us many frequently accessed items as possible. MaxDirect MemorySize is a maximum limit of direct memory from JVM perspective, JVM does not prohibit you to allocate as many new objects as possible, but it will throw OOM in a case of you exceed limit the same is with direct memory. In your settings you had disk cache size storage.diskCache.bufferSize=20480 so it is 20GB which of course much bigger than 8 GB.

Thanks for the explanation. I believe it was your colleague that came up with those settings. May I suggest that Orient DB should focus on actually getting a stable working database, rather that push for top performance. Every single build for the past two years has had critical bugs in it resulting in data corruption. In my opinion index and data corruption is the biggest problem facing Orient DB, and has been ever since I started working with it.

@jamieb22 every build as you commented did not introduce new bugs in reality because of changes in
every build we decreased an amount of bugs which are reported by users for a storage engine to three bugs.
One for increased consumption of non-heap memory (it is not related to direct memory),
one for broken data files for very specific cases as yours (actually your issues mostly the source of such specific cases) and one for incorrect initialization of index ids after the crash.
IMHO having only three bugs all over very complex storage engine is a definite sign that we spend our development time on a right set of tasks.
About again new bugs in new builds, a bug which you pointed about NPE in the index was caused by the code which was introduced even when I was not part of the project,
so many many years ago and is not part of new builds. The rest of issues are performance issues.
If for our users' functionality is too slow and they will use it only if it is faster we bound to make a system faster otherwise we will be out of the market because people will choose more rapid systems and not body will be able to fix the rest of the bugs in storage engine too. So every development is a balance between new and old features, and decreasing of an amount of bugs to three sign for me that this balance is correct.
Hope you will also agree that reducing of a sum of bugs to three is a good sign that developers take system stability seriously.

Andrey, performance is nothing without reliability, durability, etc. When it comes to a database, it is a non negotiable. I wish I could take a video of our experiences over the past few years, to show you what I refer to. Over the years, we have been forced to reduce our dependency on Orient DB. Even though, we actually need the functionality of a graph DB, we're putting more information in H2, because Orient DB cannot be trusted to preserve data.

@jamieb22 I agree with you, but if there will be no developers who will fix issues? The second question which you did not answer.
If an amount of issues reduced to three and issue which caused NPE in your case is introduced in version prior 1.0 does not mean that we take new bugs seriously?

I am not saying the Orient DB team is not willing to fix bugs. Its obvious the Orient DB team is super enthusiastic and for that we are grateful.  However, I do believe that Orient DB may not be entirely listening to overall feedback from its user base. The message is this: Currently, Orient DB doesn't work reliably in real production environments, nor does it preserve data over time. It is still plagued with critical bugs.
With our product, we spent years and years watching it running in live environments using a profiler, and observing its behavior. There is no substitute for this. This is the missing piece, along with the fact that I feel you guys are too gungho in introducing new features and place far too much of an emphasis on performance benchmarking. Everyone knows that mature databases tend to be slower than upstarts, mostly because mature databases have more locking, safety checks that are designed to ensure the integrity of data.

@jamieb22 " Currently, Orient DB doesn't work reliably in real production environments, nor does it preserve data over time. It is still plagued with critical bugs." If that is true who pays bills then? We do have a venture capital in company and all money which we have we have by selling of our services and many users renew contracts again.  I think much better to say that "Currently, Orient DB doesn't work reliably in your very specific production environments, nor does it preserve data over time. It is still plagued with critical bugs."
About "plague" of bugs how many bugs did  you count at the moment , could you send links to me ?

Andrey, you can look at our github history and see how many bugs Valentin and I have reported over time.  To further illustrate,  I just started our server now, when Orient loads an older database, lone and behold, it comes up with a NullPointerException on the OIndexAbstract.getVersion function. From our software standpoint, it is unusable. NullPointerException's appear to be the most common Orient exception, which leads me to think that there is not enough validation happening in Orient code.
java.lang.NullPointerException: null
at com.orientechnologies.orient.core.index.OIndexAbstract.getVersion(OIndexAbstract.java:787)
at com.orientechnologies.orient.core.index.OIndexAbstractDelegate.getVersion(OIndexAbstractDelegate.java:275)
at com.stimulus.archiva.database.blueprints.BluePrintDatabaseUtil.dropOldIndexes(BluePrintDatabaseUtil.java:124)

Here another bug I just discovered. What I did was start the OrientDatabase internally, stop it, and then delete the database files from the file system, then start the database up again (all the while the Java process stays running). When Orient DB is started the second time, it comes with an error "Error occurred while executing a write operation to database 'archiva$humpty' due to limited free space on the disk". This error is outputted when there is in fact plenty of disk space available:
Filesystem      Size   Used  Avail Capacity iused      ifree %iused  Mounted on
/dev/disk1     465Gi  405Gi   60Gi    88% 2760793<PHONE_NUMBER>    0%   /
2017-01-12 11:51:19 h.c.s.a.d.DatabaseService [ERROR] failed to connect to database:Error during saving of record with rid #0:1
DB name="archiva$humpty"
com.orientechnologies.orient.core.exception.ODatabaseException: Error during saving of record with rid #0:1
DB name="archiva$humpty"
at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:197)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2649)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:101)
at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1802)
at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1798)
at com.orientechnologies.orient.core.metadata.schema.OSchemaShared$2.call(OSchemaShared.java:1319)
at com.orientechnologies.orient.core.db.OScenarioThreadLocal.executeAsDistributed(OScenarioThreadLocal.java:70)
at com.orientechnologies.orient.core.metadata.schema.OSchemaShared.saveInternal(OSchemaShared.java:1314)
at com.orientechnologies.orient.core.metadata.schema.OSchemaShared.releaseSchemaWriteLock(OSchemaShared.java:627)
at com.orientechnologies.orient.core.metadata.schema.OSchemaShared.releaseSchemaWriteLock(OSchemaShared.java:616)
at com.orientechnologies.orient.core.metadata.schema.OSchemaShared.doCreateClass(OSchemaShared.java:1052)
at com.orientechnologies.orient.core.metadata.schema.OSchemaShared.createClass(OSchemaShared.java:378)
at com.orientechnologies.orient.core.metadata.schema.OSchemaShared.createClass(OSchemaShared.java:363)
at com.orientechnologies.orient.core.metadata.schema.OSchemaProxy.createClass(OSchemaProxy.java:95)
at com.tinkerpop.blueprints.impls.orient.OrientBaseGraph$5.call(OrientBaseGraph.java:1275)
at com.tinkerpop.blueprints.impls.orient.OrientBaseGraph$5.call(OrientBaseGraph.java:1273)
at com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.executeOutsideTx(OrientBaseGraph.java:1758)
at com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.createVertexType(OrientBaseGraph.java:1273)
at com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.createVertexType(OrientBaseGraph.java:1245)
at com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.createVertexType(OrientBaseGraph.java:1220)
..
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database 'archiva$humpty' due to limited free space on the disk (0 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 256 MB. Required space is now set to 256MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .
DB name="archiva$humpty"
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkLowDiskSpaceFullCheckpointRequestsAndBackgroundDataFlushExceptions(OAbstractPaginatedStorage.java:4054)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.updateRecord(OAbstractPaginatedStorage.java:1102)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:2123)
at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:178)
... 27 common frames omitted

@jamieb22 you created issue for that we provided fix and asked for feedback . But you did not answer.
All issues which you created we either  fixed or asked for additional data. But typicaly you do not answer on our questions and obviously we can not fix such issues. Could you provide me links on active issues which  you suppose still exists inside of database, so I will estimate how plague is it ?

"OLowDiskSpaceException" means that you have not enough space this issue is already fixed in develop-cache branch and will be moved to 2.2.x once I will fix all tests. Any thing else?
Could you either confirm or reopen issue about
"java.lang.NullPointerException: null
at com.orientechnologies.orient.core.index.OIndexAbstract.getVersion(OIndexAbstract.java:787)"
did you try fix which we asked you to try?
Also if you wish your issues fixed as do suggest you to answer when we ask to confirm fix, usually we asked twice and if users ignores question for 14-20 days we close issue.

Will be cool if you create an issue in a bug tracker, then we will count how big our "plague" of bugs is.
Looking forward to reading, estimate and count all issues which you send to us.
Also, I hope that you will answer our questions when we ask for additional information or confirmation of fix.

I just tried the same start, stop, delete database, start procedure in a productive environment, and I get a different error this time:
su/debug/debug.log:com.orientechnologies.common.io.OIOException: File /var/opt/mailarchiva/su/database/archiva/su/ouser.cpm was not found
su/debug/debug.log:        at com.orientechnologies.orient.core.storage.fs.OFileClassic.open(O
FileClassic.java:603)
su/debug/debug.log:        at com.orientechnologies.common.collection.closabledictionary.OClos
ableEntry.makeAcquiredFromClosed(OClosableEntry.java:98)
su/debug/debug.log:        at com.orientechnologies.common.collection.closabledictionary.OClos
ableLinkedContainer.acquire(OClosableLinkedContainer.java:272)
su/debug/debug.log:        at com.orientechnologies.orient.core.storage.cache.local.OWOWCache.
getFilledUpTo(OWOWCache.java:731)
su/debug/debug.log:        at com.orientechnologies.orient.core.storage.impl.local.paginated.b
ase.ODurableComponent.getFilledUpTo(ODurableComponent.java:135)
su/debug/debug.log:        at com.orientechnologies.orient.core.storage.impl.local.paginated.O
ClusterPositionMap.getFirstPosition(OClusterPositionMap.java:653)
su/debug/debug.log:        at com.orientechnologies.orient.core.storage.impl.local.paginated.O
PaginatedCluster.getFirstPosition(OPaginatedCluster.java:1423)
su/debug/debug.log:        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPa
ginatedStorage.getClusterDataRange(OAbstractPaginatedStorage.java:791)

@jamieb22 could you create a separate issue for each bug, so we will estimate an amount of issues which you call "plague of issues" and fix each of them. Please do not stack issues in already closed issue, because we can not track issues in such manner. Also please reopen and answer on our questions for issues which you think we closed incorrectly.  I am really looking forward to counting this plug of issue to fix all of them and decrease this plague to nothing. Because without proper tracking of issues and without feedback from users we merely can not fix issues which they are worried about.

I've just added a comment for https://github.com/orientechnologies/orientdb/issues/6651. Can you reopen the bug? We also are pretty sure that there is some kind of memory leak in Orient DB code. Our servers keep dying, heap space is ok, but virtual memory is consumed.


changed sensitive input to interactive or env vars

Description of proposed changes

Practical tips for PR review & merge:

[ ] All GitHub Actions report PASS
[ ] Newly added code/functions have unit tests

[ ] Coverage tools report all newly added lines as covered
[ ] The positive scenario is exercised
[ ] Negative scenarios are exercised, e.g. assert on all possible errors
[ ] Assert on events triggered if applicable
[ ] Assert on changes made to storage if applicable

[ ] Modified behavior/functions - try to make sure above test items are covered
[ ] Integration tests are added if applicable/needed

Codecov Report

Merging #1151 (7c7a90f) into dev (f2f16fc) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev    #1151   +/-   ##
=======================================
  Coverage   74.62%   74.62%
=======================================
  Files          74       74
  Lines       10686    10686
=======================================
  Hits         7974     7974
  Misses       2712     2712

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

I think the seed for unbond is incorrect. The rest are cosmetic issues but nice to have while we're at it.

I think I fixed all the issues.


<EMAIL_ADDRESS>decompress error

Extracting OllamaSetup.exe ... ERROR Exit code was 1!
Failed to extract files from C:\Users\pod\scoop\apps\ollama-full\0.3.12\OllamaSetup.exe.
Log file:
~\scoop\apps\ollama-full\0.3.12\innounp.log
Signature detected: Inno Setup Setup Data (6.3.0)
This is not directly supported, but i'll try to unpack it as version 5602
; Version detected: 6300
Unpacking failed. This version is not supported.

Relates to #13444, ScoopInstaller/Main#6065.


Feature Request - print multiple invoices at once

The current implementation can only print single invoices.
For 40+ invoices you need to navigate into every single order and print the invoices individually.
The default invoice module of magenta as well as postage printing can print via a mass action for a number of selected orders at once. This extension should not be worse then the default module.

I agree, I need the ability to be able to print multiple invoices at once, but this extension only works on the order page. When I try and print multiple invoices at once from the order grid, Magento uses the default PDF template.
Is it possible for this extension to work from the order grid too?

Note:
I personally no longer have need for this. (The feature request remains valid.)
I stopped using this plugin and took the time to write my own with barcodes and everything.

We have added the feature request to our internal issues system.
Thanks for the suggestions.

Great news, have you got any kind of ETA for this feature?