Getting a Stack Error when running Execute CQL for QICore library

I created a primary library HFACEIorARBorARNIforLVSDQICore4.cql, and I received the following stack error when running 'Execute CQL':
The following errors were encountered during evaluation: org.opencds.cqf.cql.engine.exception.InvalidOperatorArgument: Expected a list with at most one element, but found a list with multiple elements. 	at org.opencds.cqf.cql.engine.elm.execution.SingletonFromEvaluator.singletonFrom(SingletonFromEvaluator.java:32) 	at org.opencds.cqf.cql.engine.elm.execution.SingletonFromEvaluator.internalEvaluate(SingletonFromEvaluator.java:47) 	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18) 	at org.opencds.cqf.cql.engine.elm.execution.ExpressionDefEvaluator.internalEvaluate(ExpressionDefEvaluator.java:19) 	at org.opencds.cqf.cql.engine.elm.execution.Executable.evaluate(Executable.java:18) 	at org.opencds.cqf.cql.engine.execution.CqlEngine.evaluateExpressions(CqlEngine.java:186) 	at org.opencds.cqf.cql.engine.execution.CqlEngine.evaluate(CqlEngine.java:164) 	at org.opencds.cqf.cql.evaluator.CqlEvaluator.evaluate(CqlEvaluator.java:89) 	at org.opencds.cqf.cql.evaluator.CqlEvaluator.evaluate(CqlEvaluator.java:76) 	at org.opencds.cqf.cql.evaluator.cli.command.CqlCommand.call(CqlCommand.java:163) 	at org.opencds.cqf.cql.evaluator.cli.command.CqlCommand.call(CqlCommand.java:34) 	at picocli.CommandLine.executeUserObject(CommandLine.java:1953) 	at picocli.CommandLine.access$1300(CommandLine.java:145) 	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352) 	at picocli.CommandLine$RunLast.handle(CommandLine.java:2346) 	at picocli.CommandLine$RunLast.handle(CommandLine.java:2311) 	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179) 	at picocli.CommandLine.execute(CommandLine.java:2078) 	at org.opencds.cqf.cql.evaluator.cli.Main.run(Main.java:19) 	at org.opencds.cqf.cql.ls.DebugCqlCommandContribution.executeCql(DebugCqlCommandContribution.java:37) 	at org.opencds.cqf.cql.ls.DebugCqlCommandContribution.executeCommand(DebugCqlCommandContribution.java:65) 	at org.opencds.cqf.cql.ls.service.CqlWorkspaceService.executeCommandFromContributions(CqlWorkspaceService.java:173) 	at org.opencds.cqf.cql.ls.service.CqlWorkspaceService.executeCommand(CqlWorkspaceService.java:121) 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 	at java.base/java.lang.reflect.Method.invoke(Method.java:566) 	at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.lambda$null$0(GenericEndpoint.java:65) 	at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.request(GenericEndpoint.java:120) 	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleRequest(RemoteEndpoint.java:261) 	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:190) 	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:194) 	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94) 	at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:113) 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 	at java.base/java.lang.Thread.run(Thread.java:829) elapsed: 0.1 seconds
Setup follows the structure of ecqm-content-qicore-2022.
The primary library is at HFACEIorARBorARNIforLVSDQICore4.cql.
The test case bundle is at tests-ip-neg-HFACEIorARBorARNIforLVSDQICore4-bundle.json

Hi @JSRankins!
I've seen that error before when there is more than one Patient resource on the test-case path. I see only one in your Bundle, but I'm assuming this is the source test folder?
https://github.com/JSRankins/ecqm-content-qicore-2022/tree/master/input/tests/measure/HFACEIorARBorARNIforLVSDQICore4/ip-neg-HFACEIorARBorARNIforLVSDQICore4
If so, you need to move the tests-ip-neg-HFACEIorARBorARNIforLVSDQICore4-bundle.json up a level to be in the HFACEIorARBorARNIforLVSDQICore4 folder. The CQL evaluation will import everything in the ip-neg-HFACEIorARBorARNIforLVSDQICore4 folder for test evaluation, including Bundles, which causes two instances of the same Patient resource. We're looking at how to best improve that behavior in the future.

Hi @JPercival. Looks like it is a data issue, or perhaps an assumption baked into the execution code. The Encounter has a period where start and end are same and data based - not offset by any difference in date or time. When providing a start and end that have a different date (start = 2022-01-01, end = 2022-01-03), issue still occurs, but when providing time with date (even when start = end), I receive expected outcome:
Patient=Patient(id=ip-neg-HFACEIorARBorARNIforLVSDQICore4) SDE Ethnicity=Concept { 	Code { code: 2135-2, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: Hispanic or Latino } } SDE Payer=[] SDE Race=Concept { 	Code { code: 2028-9, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: Asian } } SDE Sex=Code { code: F, system: http://hl7.org/fhir/v3/AdministrativeGender, version: null, display: Female } Qualifying Encounter During Measurement Period=[] Heart Failure Outpatient Encounter=[] Initial Population=false Moderate or Severe LVSD Findings=[] Heart Failure Outpatient Encounter with History of Moderate or Severe LVSD=[] Denominator=false Has Heart Transplant=false Has Heart Transplant Related Diagnosis=false Has Left Ventricular Assist Device=false Has Left Ventricular Assist Device Related Diagnosis=false Denominator Exclusions=false Has ACEI or ARB or ARNI Ordered=false Is Currently Taking ACEI or ARB or ARNI=false Numerator=false Has Medical or Patient Reason for Not Ordering ACEI or ARB or ARNI=false Has Allergy or Intolerance to ACEI or ARB or ARNI Ingredient=false Has Diagnosis of Allergy or Intolerance to ACEI or ARB=false Has Diagnosis of Pregnancy=false Has Diagnosis of Renal Failure Due to ACEI=false Denominator Exceptions=false Face to Face Encounter During Measurement Period=[]

Are you saying that the stack trace error is related to the timings of the Encounter resource or is this a new, distinct issue?

Trying to confirm that this is addressed by the 0.4.0 release, but the links to the repro give 404?
@JSRankins , can you confirm whether you are still seeing this issue with the 0.4.0 plugin release?

Hi @brynrhodes. My apologies. I forgot about this ticket and had changed the name of the file - EXM135v11QICore4.cql. At any rate, I'm not able to recreate the issue, so it appears to be resolved.


Firebase stripe extension not sending customers name to stripe when customer created

[REQUIRED] Step 2: Describe your configuration

Extension name: firebase-stripe-extension
Extension version:     "stripe": "^8.191.0",
Configuration values (redact info where appropriate):

_
_

[REQUIRED] Step 3: Describe the problem
When I create a new user using createUserWithEmailAndPassword it successfully adds a new user in firebase and a new customer in stripe but does not add the name of the person.
Expected result
Customer with name
Actual result
Customer with empty name

Hi @pkmazarakis
Stripe extensions are now supported in the official Stripe repository. https://github.com/stripe/stripe-firebase-extensions
The following extension supports the synchronisation of auth users https://firebase.google.com/products/extensions/stripe-firestore-stripe-payments
Would this solve your issue?

Closing due to inactivity

@aryanhimself This extension has moved to https://github.com/invertase/stripe-firebase-extensions, could you please file an issue there?


perf,kwok: fix path to kubectl.sh in kwok-perftests.sh

What this PR does
The path to kubectl.sh changed as part of https://github.com/kubevirt/kubevirt/pull/12872
The kwok-performance periodic lane is failing due to not being able to find kubectl.sh [1]
[1] https://prow.ci.kubevirt.io/view/gs/kubevirt-prow/logs/periodic-kubevirt-e2e-k8s-1.29-sig-performance-kwok/1858694400775819264

Fixes #
Why we need it and why it was done in this way
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer
/cc @dhiller @xpivarc @alaypatel07
Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[ ] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note

NONE

Thanks a lot @brianmcarey!
I see that there are other occasions of using the wrong path. I've created a follow-up to address them as well: https://github.com/kubevirt/kubevirt/pull/13290.

Thanks a lot @brianmcarey!
I see that there are other occasions of using the wrong path. I've created a follow-up to address them as well: #13290.

Those will have to be updated in the kubevirtci repo first - I can take care of that if you want. Thanks for pointing them out!


CKEditor 5 integration

@Hazelfire has a working implementation, but might need more work with #1142.

FYI, if it comes out that few people use it, then I wouldn't be excited about maintaining this indefinitely. My impression is that we should wait another few months to really suggest it for LessWrong/EA Forum, and there's not much use otherwise.
Honestly, I don't really get the interest, other than curiosity in how well it will do then / the challenge.


Make filer compatible with s3 when handling /buckets/../.. paths (an entry can be both a file and a directory)

What problem are we solving?
Due to filer's mandatory compatibility with the path specification of posix, many files (both object files and logical directories in ceph s3) cannot be migrated from ceph to seaweed.
When migrating these files, a response of 409 (prompt 'existing xxx is a directory' or 'existing xxx is a file') will be generated, which is very frustrating
How are we solving the problem?
Make filer compatible with s3 when handling /buckets/../.. paths (an entry can be both a file and a directory)
How is the PR tested?
Checks

[ ] I have added unit tests if possible.
[ ] I will add related wiki document changes and link to this PR after merging.

Prefer not to introduce one more option. This option is only for object storage. It can be auto turned on if the file is in a bucket, where the prefix has /buckets/.../.
This approach is using one entry for both a directory and a file. Listing directory and deleting files, are tricky.

@chrislusf

at weed/pb/filer_pb/filer_pb_helper.go:20
func (entry *Entry) IsDirectoryKeyObject() bool {
	return entry.IsDirectory && entry.Attributes != nil && entry.Attributes.Mime != ""
}

我被这段代码误导了，所以现在的逻辑是当 entry.IsDirectory==true 时通过 Mime!="" 判断是否同时是一个 s3文件，但这是有问题的，因为通过 S3 PubObject 上传的文件可能不包含 ContentType，导致Mime 为空字符串，这种情况下，如果对应的 entry 已存在且是个目录的话，无法通过 Mime 判断这个entry是否是 s3 文件；
为了能正确的识别一个directory entry 是否是 s3文件，是否可以加个 S3专用的 fs.FileType
var FileModeS3 fs.FileMode = 1 << (32 - 14) // 偏移的offset设置为14是为了和 fs 的其他 FileMode 区分开

当一个 entry 已经是 filer directory的时候，通过 entry.Mode |= FileTypeS3 来标识该 entry 是个 s3 文件

当一个 entry 已经存在，且 entry.IsDirectory() 为true 的话，那么当该 entry 关联的 url 上传文件后会将 entry的mime 属性更新，默认为application/octor-stream


Add NetCDF3 dtype coercion for unsigned integer types

This PR addresses #4014.

[x] Closes #4014
[ ] Tests added or adjusted

[x] Adjusted a test case where int64 coercion played a role
[ ] Explicit test for failing coercion (seems to be missing currently -- should this be added?)

[x] Passes isort -rc . && black . && mypy . && flake8
[x] Fully documented
[ ] Adjusted whats-new.rst for all changes and api.rst for new API

Currently, the error that is raised by coerce_nc3_dtype is not covered by tests.
A test could look something like this:
    def test_dtype_coercion_error(self):
        for dtype in _nc3_dtype_coercions:
            if dtype == "bool":
                continue

            # Create some data that cannot be coerced (cause it's a downcast)
            dtype = np.dtype(dtype)
            maxval = np.iinfo(dtype).max
            x = np.array([0, 1, 2, maxval], dtype=dtype)
            test_data = Dataset({"x": ("t", x, {})})

            # Make sure a roundtrip fails
            with pytest.raises(ValueError, match="could not safely cast"):
                self.roundtrip(test_data)

... but I'm not sure ...

whether this would be desirable to test
whether this PR should take care of this or not
where in test_backend.py I would have to put the test case such that it's invoked only for netcdf3.

I already found the NetCDF3Only class and requires_scipy decorator, but don't know which test class is responsible here ...

@dcherian I think this would be ready for review now. I'd appreciate some guidance on the implementation of the tests; see above.

If you are up for it, we'd love to add testing for that error in this PR.
I think NetCDF3Only is the right place to put it. It gets called by a number of test classes that inherit from NetCDF3Only. Add it there and see if things pass?

Alright, I added the test. From my side, this would be ready. :)
Let me know if further changes to the tests or What's New are necessary.

LGTM. Thanks @blsqr

Yay. Thanks @blsqr. I see this is your first PR. welcome!

Thanks, @dcherian! I'm happy to contribute 😊


Status Notifications of the workflow run

Support sending a Slack notifications and alerts when the workflow is finished and/or for special events.
Suggestion: When a run of a pipeline finishes, automatically send an alert to a specific Slack channel. The alert can contain the name of the run/pipeline, the status, and/or other information.
Another usage is to send a notification that the run is stuck, for example when the size of the logs is not growing or other different criteria.

Hi @Mohammad-nassar10 can you elaborate this issue further?

cc @HumairAK


Feature: Allow additional DNS names to be added to API TLS assets

One way to deploy large cluster updates is to deploy an entirely new cluster, export services from the old cluster, import to new cluster and switch DNS (this way works fine for stateless services).
The way I've been doing this is to give the cluster name a version and then set a Route 53 DNS alias to that version. i.e. k8s-dev.DOMAIN points to k8s-dev-v2.DOMAIN. This means that places referencing or calling the API server don't all need to be updated. It's a bit like a cluster blue/green deployment. To fulfil this, I've been generating our own certs entirely since the TLS bootstrap provided by kube-aws used to be less feature complete. In order for this to work with the TLS the certs need to have a DNS name entry of k8s-dev.DOMAIN as well as k8s-dev-v2.DOMAIN.
Since implementing self TLS management, kube-aws has added etcd management, HA controllers plus a few other changes meaning it's more difficult to keep up to date with TLS changes. So I'm considering whether to scrap this self-managed way and go with the feature kube-aws now provides. However, there's no way to add other DNS names into the cert and almost everything is coupled together in render credentials. The only part decouple is CA generation.
I think this could be solved in a few ways:

Provide up to date guidance on generating all required TLS assets (it's not up to date in the docs).
Allow more DNS names to be passed into kube-aws for the API server cert.
Allow some of the TLS assets to be kube-aws generated while others are user generated.

My preference currently sits with 2 since I think it can be quite common to alias and version in this manner - usually for services rather than a whole cluster but the same principles apply.

I've done a brief proof of concept for this, not tested it much yet but seems to work as expected.

@c-knowles I came up with #373 to support various use-cases including yours regarding how we configure and manage k8s API endpoints.
Does #373 make sense to you?

This seems to be a duplicate of #285 but leave this open because #285 is already closed.

@c-knowles Excuse me I'm asking something odd but how are you planning to rotate keys and certs on API clients when an actual k8s cluster backing k8s-dev.DOMAIN was switched to an another cluster?
Or do you want to achieve the switch without modifying not only the API endpoint but also the admin-key.pem and admin.pem?
Then, do we need to provide a way to somehow reuse keys and certs for only k8s-dev.DOMAIN but not for k8s-dev-v2.DOMAIN?

The change I prototyped just adds a domain to the same API cert so nothing else really needs to change. That way each versioned API can be accessed via both the versioned/non-versioned domains and DNS switchover just works. If the other certs are rotated via render credentials that is fine, the only thing that needs to happen there is the API certs are valid for one more domain.

Thanks a lot for the confirmation!
So, in a simplest case, you create an another cluster you'd like to switch
over to, with the exactly same set of certs and keys used by the previous
cluster, right?
2017年3月30日(木) 0:19 Chris Knowles<EMAIL_ADDRESS>
The change I prototyped just adds a domain to the same API cert so nothing
else really needs to change. That way each versioned API can be accessed
via both the versioned/non-versioned domains and DNS switchover just works.
If the other certs are rotated via render credentials that is fine, the
only thing that needs to happen there is the API certs are valid for one
more domain.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-incubator/kube-aws/issues/343#issuecomment-290123944,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABV-WMLfAMXUXkXHoajEedbecXCsKNYks5rqnaPgaJpZM4MJmoo
.

Well not identical if you mean the entire set, at least the API cert is different. I believe when I did this I just ran render credentials and got the expected result of same CA, renewed certs and specifically new API cert with non-versioned domain and versioned domain for new cluster. Not sure about the private keys but don't thing those changed.

Thanks. Yes, I believe you are correct on that now. The cert for the API server need not be reused. Probably, even the admin.pem and admin-key.pem, which are referenced and distributed with the kubeconfig for an admin, need not be reused.
However, we need to reuse the CA cert and the CA key for a previous cluster at least, or the admin ends up failing client authentication due to the mismatching CA?

I believe when I did this I just ran render credentials and got the expected result of same CA, renewed certs and specifically new API cert with non-versioned domain and versioned domain for new cluster.

So, in your above experiment, you've passed your CA cert and the CA key via --ca-cert-path and --ca-key-path, right?

I believe in my use case I copied back the same admin private key meaning existing places that administer the cluster continue to work. I can't remember exactly as it was a while ago now. However, that's probably a side issue to the main feature request and I'd just script it our end.

However, we need to reuse the CA cert and the CA key for a previous cluster at least, or the admin ends up failing client authentication due to the mismatching CA?

Yes we need to reuse the CA or else the existing places of administration can/will start to fail.

So, in your above experiment, you've passed your CA cert and the CA key via --ca-cert-path and --ca-key-path, right?

Yes pretty much the same, our setup script copies the CA files into the appropriate place but this has the same effect as render credentials reuses them.

I believe in my use case I copied back the same admin private key meaning existing places that administer the cluster continue to work. I can't remember exactly as it was a while ago now. However, that's probably a side issue to the main feature request and I'd just script it our end.

OK 👍
Btw, I was a bit afraid not to shut out existing admins due to inconsistent keys/certs at first.
Now, if I understand correctly, any admin key (re)generated would be fine to authenticate admins against either a previously or newly provisioned cluster as long as we use the same CA between the two.

Yeah, I'm not fully up to speed on what checks are performed either. But I think it "just works".

FYI, #468 is generally working. You can try adding any number of API endpoint DNS name like:
worker:
  nodePools:
  - name: pool1
     apiEndpointName: v1

apiEndpoints:
# This one is required for kubelets
- name: v1
  dnsName: k8s-dev-v1.DOMAIN
  loadBalancer:
    # btw, setting hostedZone.id implies `createRecordSet: true` now
    hostedZone:
      id: <the zone k8s-dev-v1.DOMAIN is created>
# This one is for admins and CI, CD systems. No ELB/RecordSet is created but the DNS name is included in a generated TLS cert
- name: unversioned
   dnsName: k8s-dev.DOMAIN


Add attachment after creating testsuite, changes testsuite name to the attachment file name

Before adding attachment

After adding the attachment

Verified
Before

After


sku domain filter bugfix

这个 PR 实现什么功能/修复什么问题:

skus domain过滤兼容provider参数为字符串列表的情况

是否需要 backport 到之前的 release 分支:

release/2.13
release/2.14
release/3.0

/area region
/cc @swordqiu

Codecov Report

Merging #4823 into master will increase coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #4823      +/-   ##
=========================================
+ Coverage    6.78%   6.78%   +<.01%
=========================================
  Files         524     524
  Lines       89813   89819       +6
=========================================
+ Hits         6093    6095       +2
- Misses      83213   83218       +5
+ Partials      507     506       -1

Flag
Coverage Δ

#aFlag
6.78% <0%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

pkg/compute/models/skus.go
1.21% <0%> (-0.01%)
:arrow_down:

pkg/cloudcommon/db/lockman/fifo.go
90% <0%> (+10%)
:arrow_up:

Continue to review full report at Codecov.

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

/lgtm

/approve


Updated a lot of wording and style of script

I cleaned up most of the code and reworded it to make more sense to new people :+1:

I will also update the readme later tonight or this week if I have time :)

cool stuff! will review it tomorrow!

Alright :+1:

added a few comments - maybe you change this things in the future - merging it for now


Make "example" directory browsable/easily discoverable

Pub so nicely has the functionality of placing example(s) in the "example" directory to explain how a library is used. This can often be a much simpler, more concise way to introduce a library instead of its documentation (and familiar in the StackOverflow world we live in). We should make the example directory browsable from the web, and/or linked to the API docs in some way so that our users can find this documentation.

This issue has been moved to dart-lang/pub-dartlang#297.


Integrating custom reporters/formatters

Expected Behavior
At Peakfijn we are using Commitlint for all of our new projects, and we are really happy with it! Right now we are in the process of evaluating and checking on points where it could be improved. One of these points was the ability to report the outcome the CLI command.
Current Behavior
We are using Bitbucket Pipelines are we are testing all commits since start or since when we switched to our new standard. When someone made an error in the commits, we have to scroll and search for the conflicting rule. There is no way in getting a commit range from Pipelines, but that's another discussion.
It would be really really great for us if we can "report" or output the CLI command's result in a specific format. I've noticed that Circle CI, Bitbucket Pipelines and probably others have support for junit reports.
Affected packages

[X] cli
[ ] core
[ ] prompt
[ ] config-angular

Possible Solution
I noticed that both ESLint and Stylelint, other linters we use, have support for this. So for a possible solution I would recommend taking a look at both variations. I'm also happy contribute to this feature too, if it's something you and/or others are interested in.
Steps to Reproduce (for bugs)
Context
Your Environment

Thanks for the nice suggestion @byCedric, I really appreciate it.
I'd like to see support for custom formatters in commitlint. This would involve a number of things:

Introduce a new cli flag: --format=<formatter-id> | -o=<formatter-id>
Introduce a new config key for commitlint.config.js: formatter
formatter-id is a npm module id resolved from the current cwd (or --cwd). It defaults to @commitlint/format
Resolve the formatter early on during cli runs, fail loudly if not available

Want to lend a hand @byCedric?

You are welcome @marionebl! As said, we are using it at Peakfijn now for all our projects. It helps us making sure everyone follows our flavor of Angular Conventional Commits Conventions. And it's doing pretty well on Bitbucket (Pipelines) too. Also, I agree with you on all 4 points. It should be configurable through the general (possibly shared) config. But also allow overwriting through CLI.
You make it sound relatively easy, I'm sure I can create a PR for this. And I'm happy to help of course!

Expand both the config and CLI with an option formatter.
Resolve the formatter in @commitlint/cli, fail if something is wrong.
Use this formatter over here.

I'm still a bit concerned about every message being independently formatted in the CLI. The way I see it this should be sent to the formatter at once, in a list. This allows the formatter to create a "summary", just like eslint's stylish formatter. You could fix this by resolving all messages, in parallel, with lint() before calling the formatter.
I also think the (extra) logging, in the main method in CLI, would potentially "screw up" strict output formats (like JUnit). It might be wise to move this part to the default formatter so you can customize it, per formatter.
I know how I would fix this, but it's always better to discuss things like this 😄 So, before I get dirty with this, what is your take on these two (potential) issues?

Sounds like a plan! I'll get started on this then. Based on my schedule I would say I probably have something around Sunday (2018/09/09 UTC+02:00).

Ok, so I had some time to work on this. It's going pretty well so far, but I'm not there yet! So, here a quick update.

Add formatter to @commitlint/load with a default value of @commitlint/format.
Add --format|-o to @commitlint/cli with null as default (to use the config formatter).
Fail @commitlint/cli if the formatter couldn't be found or loaded.

"Challenges" I found
1. I'm not sure how the exit code should be generated
I was a little confused about the current state how the status code is being handled. It looks like @commitlint/cli throws exceptions, per commit message, and adds an error.type containing @commitlint/cli. Finally, this is used to determine the status code 1 (error) or something else.

Should this now be calculated with the resolved reports array instead of these errors? With this change you can still output "summaries" without erroring out. ESLint also has the approach of checking if there are issues in the results. And XO is doing it too.

Assumptions I made (not all are in the PR right now)
1. Set default formatter in @commitlint/load instead of @commitlint/cli.
I did this so that whenever --format|-o is provided, it should be used (no matter what). If we put the default value in @commitlint/cli we would have to check if it's the default. Else it would always override the @commitlint/load formatter.
2. Pass both the reports and the flags object
Currently, it uses some options from the flags in the "old" formatter (hardcoded into @commitlint/cli). To allow these kind of options to be used by formatters, we need to pass them through. Or at least, that's what I think.
I'm going to try to fix the challenge today. Feel free to stop me anytime if you think the challenge solution or assumptions shouldn't be done this way. @marionebl  😄

Thank you so much for this PR. I'll have a look at your changes right away.
Exit codes

Should this now be calculated with the resolved reports array instead of these errors? With this change, you can still output "summaries" without erroring out. ESLint also has the approach of checking if there are issues in the results. And XO is doing it too.

Yes, let's go with the approach already established by ESLint. 👍
I'd like to keep the current error-aggregation, though - so the new order of things would be:

Create the report project as described
Let the formatter do its thing
Decide based on report.valid if a "managed" error (with .type) should be thrown

Default formatter in load
Ok, let's do it this way
Pass both the reports and the flags object
I'd prefer to pass only what we anticipate is needed in the formatters and hide the fact there is concept of cli flags from the formatters. What cli flags do you think might be relevant to formatter implementations?
Report object
Yes let's do this.
Testing output
Yes, some of the CLI tests might become obsolete - I'd take care of this after landing the feature.

The changes on the "assumptions" branch look fine to me 👍

Thanks for the checkup! I'll update the exit code mechanism use the managed errors.
So far, the current formatter only requires the flag color to determine if it can use chalk or not. I don't think there will be much more to configure besides this flag. I guess we can simply call it like this, right? @marionebl
const output = format(report, {color:flags.color});

Ok, i've updated the PR with the following changes:

Revert formatter parameters to only report and options. Only the color flag is being passed as option for now. #ef76b84 and #32e8e72
Throw a managed error (with .type) based on the .valid property of the report. #f2d78c9
Update configuration and cli documentation. #565858c and #9fa75f2

I can write something about custom formatters in the documentation, if you want. Recently wrote a CI guide for Expo, if you want something similar for this feature, let me know! 😄
Again, thanks for being awesome!

Is there anything I can still do for this feature? @marionebl


docs(Spec-Scale): Translate Spec-Scale to En

Issue: https://github.com/antvis/G2/issues/5743

Checklist

[x] npm test passes
[x] benchmarks are included
[x] commit message follows commit guidelines
[x] documents are updated

Description of change

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
We've detected an issue with your CI configuration that might affect the accuracy of this pull request's coverage report.
To ensure accuracy in future PRs, please see these guidelines.
A quick fix for this PR: rebase it; your next report should be accurate.

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 88.241%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
10021

Relevant Lines:
10992

💛  - Coveralls

@owenchen1004  这个 PR 我先合并了，上面的问题你单独开一个 PR 修复即可。


Add dynamic service discovery

Can you please:

Explain a bit as to what this does and why it's needed
Update your PR to resolve conlficts


Release react-routeways

This is the first release of react-routeways

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

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Compute] Create a folder for compute 2018-04-01 API version

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[x] The title of the PR is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[x] If applicable, the PR references the bug/issue that it fixes.
[x] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[x] I have read the contribution guidelines.
[x] My spec meets the review criteria:

[x] The spec conforms to the Swagger 2.0 specification.
[x] The spec follows the guidelines described in the Swagger checklist document.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Automation for azure-sdk-for-python

Automation for azure-sdk-for-go

@hyonholee Do you authorize me to update this PR with the correct updated Readme?
If not, could you be do this.
Thank you.

@lmazuel  No, please do not update readme.md file.  This is a preliminary PR for upcoming API.  We still want to generate a client library from 2017-12-01 version, but Networking team asked us to create 2018-04-01 folder in order to send their PR for modifying compute.json file.  When CRP enables 2018-04-01 API, the networking team will test the 2018-04-01 API with their update and then update the readme.md file.

Thanks for the headups @hyonholee :)
All SDK owners, FYI @shahabhijeet @marstr @sarangan12 @amarzavery

@hyonholee After thinking about it, we usually don't check-in Swagger that are not ready for prod in "master". This creates documentation issue, and some customers are using directly the Swaggers. I think we should use a feature branch compute-2018-04 for that. This allows Network team to work on that as well (they used to feature branch). Thoughts?
@salameer for guidance.
Thanks!

@lmazuel Thanks for feedback.
@salameer Could you create compute-2018-04 branch and redirect this PR to there?

Thanks, could you merge this PR if there is no more issue?  Our team will send more PR to compute-2018-04 branch.  Thanks.

@jianghaolu is fine with the content, and I double-checked with @salameer, so merging.
@ravbhatnagar FYI


Wait one second after typing env vars

Cypress is going too fast after having typed env vars, so when the application is fully deployed, we don't see Environment Vars set to 1 and the test fails.
This PR adds a wait call of 1 second, that's probably not the more elegant way but it does the job until we find something better.

Test passed locally:


Password reset for Native Auth

This PR includes the work for self service password reset related features of Native Auth. No new dependencies have been added as part of this PR.

Looks like this one is outdated, needs to pull in sign in pr as i see a lot of sign in files here. Can we update this branch, then i can take a look

This PR has been updated.


Request: Make the file jump to command show files relative to the current file first

Issue Type: Feature Request
Our main project has literally hundreds of sub-repos in it, so using cmd+p to find package.json, for instance, is almost useless.

Would love to see the package.json file relative to the current file I'm looking at displayed first, or any other solution that allows us to navigate easier
e.g. if I'm looking at /src/foo/bar/baz.ts, I'd want to see /src/foo/package.json first
VS Code version: Code 1.62.2 (Universal) (3a6960b964327f0e3882ce18fcebd07ed191b316, 2021-11-11T20:59:05.913Z)
OS version: Darwin x64 20.6.0
Restricted Mode: No
Remote OS version: Linux x64 5.4.0-77-generic

/duplicate #133438

This isn't exactly a dupe of that issue.  #133438 is asking for the ability to type ./.  I'm asking VSCode to sort the type-ahead automatically based on relevance.

Fair enough. Let's see what folks say.


What is 'opt' in the train.py?

Code is excellent. I just want to know what is 'opt' in train.py
what argument should I pass when I am calling train module.
Thank you

Hi @Ridhee,
opt in train.py contains all the arguments parsed from the command line.
I have provided an example training script here. To explore more experimental setups, I will encourage you to have a look at opts.py and go through all the available command line arguments. This will further help you write your own custom training bash script.
Hope that answers your queries.

Thank you.
On Wed, Aug 17, 2022 at 11:18 PM Divyam Goel @.***>
wrote:

Hi @Ridhee https://github.com/Ridhee,
opt in train.py contains all the arguments parsed from the command line.
I have provided an example training script here
https://github.com/dv-fenix/HyperspecAE/blob/main/run/samson_train.sh.
To explore more experimental setups, I will encourage you to have a look at
opts.py
https://github.com/dv-fenix/HyperspecAE/blob/main/src/utils/opts.py and
go through all the available command line arguments. This will further help
you write your own custom training bash script.
Hope that answers your queries.
—
Reply to this email directly, view it on GitHub
https://github.com/dv-fenix/HyperspecAE/issues/1#issuecomment-1218321461,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUD7YG4DIFTSLNJNQFXKQE3VZUQWFANCNFSM562D4C7Q
.
You are receiving this because you were mentioned.Message ID:
@.***>


[Logging] System test failing for logging

System tests for logging are failing like this currently:
_____________________________________________________________________________________________________ TestLogging.test_log_handler_sync ______________________________________________________________________________________________________
Traceback (most recent call last):
  File "/Users/crwilcox/workspace/google-cloud-python/logging/tests/system/test_system.py", line 264, in test_log_handler_sync
    entries = _list_entries(logger)
  File "/Users/crwilcox/workspace/google-cloud-python/logging/tests/system/test_system.py", line 67, in _list_entries
    return outer(logger)
  File "/Users/crwilcox/workspace/google-cloud-python/logging/.nox/sys-3-6/lib/python3.6/site-packages/test_utils/retry.py", line 95, in wrapped_function
    return to_wrap(*args, **kwargs)
  File "/Users/crwilcox/workspace/google-cloud-python/logging/.nox/sys-3-6/lib/python3.6/site-packages/test_utils/retry.py", line 155, in wrapped_function
    raise BackoffFailed()
test_utils.retry.BackoffFailed

Saw it again today.

Via #5486.

I don't believe #5486 actually fixed the test_utils.retry.BackoffFailed problem:  it just added retries for 429s w/ RESOURCE_EXHAUSTED gRPC status codes.  See today's failure (the second error, inside TestLogging.test_log_text_with_resource).

Failed again today

And again today

A new failures today.
#5551 set max_tries=9 in the retry wrapper.  I wish I had a better idea than to just bump the number higher.


[Gally]: master <- dev

Automatically created by Git-Ally

:tada: This PR is included in version 2.9.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Make failed key resources throw informative error

This is in response to an issue raised in tymondesigns/jwt-auth#763. A couple users were attempting to pass in file:// keys, but having a hard time diagnosing why they would fail. I suggest you utilize openssl_error_string() to communicate problems with potential key resources:
At the moment, when keys are passed in as invalid file strings (or potentially other non-resource objects), PublicKey fails with the unclear message:
Could not create token: openssl_pkey_get_details() expects parameter 1 to be resource, boolean given

It would be more helpful if failures to retrieve key resources were communicated directly to the user, so I have getKeyResource checking its result before submitting and throwing an exception if it couldn't successfully create a resource.

Ok, I see a bad typo in there! I'll fix that and add some cases to KeyFormatTest.php later today...

Hrm. PHPUnit 4.8 doesn't have the same method signature for exception checks. And I guess HHVM actually throws an error when the file isn't found? I wonder if the openssl_ methods change slightly or if it's just differences in error bubbling...

Ok, passing all checks! Let me know if you need a squash or any style changes...

:+1: great work @tdhsmith, thank for the help!

in 7.2.0


Load file partially

Is your feature request related to a problem? Please describe.
One of my main use-cases for hex editors is fixing issues with partitions.
Partitions can be huge, and it seems that teehee tries to load the edited file fully into
memory, making it basically unusable for that.
Describe the solution you'd like
Idk how hexedit does it exactly, but it opens instantly. I guess it doesn't
read the whole thing into memory.
Describe alternatives you've considered
Going back to hexedit :/

Hey, thanks for the feedback! This is a use case that I, too, had in mind. You are correct in that teehee loads the entire file's contents into memory when opening the buffer. I will consider alternatives for this in the future, once all the keybinds and other core features are implemented.


[$500] Android – Image is reduced for a moment when quickly slide forward/back images using arrows

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.35-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4265112
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Launch app
Log in
Navigate to a conversation that has 5 or more image attachments in it's history
Click on one of the attachments to open the preview
Click on the forward or back arrow to navigate through the conversation attachments quickly

Expected Result:
The image size is normal when quickly slide forward/back images using the arrows
Actual Result:
The image is reduced for a moment when quickly slide forward/back images using the arrows
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/a99e901f-5fa3-4580-8113-aa288435f338
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~019fd6243b644a1821
Upwork Job ID:<PHONE_NUMBER>309678592
Last Price Increase: 2024-02-23

Will work on review today

Bumping for Melvin

Sorry for the delay. Working on review now

@tienifr From the proposal here https://github.com/Expensify/App/issues/35615#issuecomment-1922853744,
To summarize, we show the image before the image size is determined by the system, causing it to show in a fallback size. The suggestion is to not show the image and show the loading indicator.
@johncschuster This expectation seems fine IMO, But I would like to confirm the expectation.

Followup question to @tienifr
Is there a way to re-use the image sizes which we got previously?

Are you suggesting that we shouldn't show an image at all when a user is in image preview mode and swiping through images, and instead show a loading indicator?

Not a suggestion. I would put it as a question instead.
@tienifr proposal here https://github.com/Expensify/App/issues/35615#issuecomment-1922853744 targets to do that. My question would be, Is it good enough from UX perspective? or should we try out for more optimized fix(which would be reach out for other proposals)?

@abdulrahuman5196

@tienifr proposal here #35615 (comment) targets to do, also explained in detail here #35615 (comment). My question would be, Is it good enough from UX perspective? or should we try out for more optimized fix(which would be reach out for other proposals)?

Fair question. I think I'd like to get some ideas from our @Expensify/design on the UX of this proposal.
@Expensify/design, we're trying to figure out the best way to address how images load when a user scrolls through a carousel of images in NewDot. There are a few suggestions (starting here) on how we can address this, but these might not consider the overall user experience. I'd love your thoughts!

I probably prefer us showing a loading indicator until we can properly display the images. I don't feel very strongly though, but the less "jumpy" we can make the UI, the better.
Unless we can somehow load all the image sizes as a request on the very first image, instead of as you scroll through the carousel?
Keen for rest of @Expensify/design opinions.

Yup, that makes sense to me. I basically agree with this comment too:

The suggestion is to not show the small image initially. Instead, it will only show loading indicator while the image is loading (which is brief), then after the image is loaded and the size is known, the full image will be shown with the correct size from the start (rather than showing image with incorrect size first then change to correct size as currently)

Yeah that sounds good to me too. Agree with Jon that the less jumpy we can make the UI, the better.

Awesome. Thanks for your feedback, team!

@abdulrahuman5196 can you take a look at the comments above? Based on the design team's feedback, it sounds like we would go with @tienifr's proposal. Do you agree?

Hi, Reviewing now.

@tienifr I noticed that we are getting the contentSize from cachedImageDimensions which is basically caching the image dimensions. Then how this issue happening even if we swipe for the second time without exiting the attachment corousel?
https://github.com/Expensify/App/blob/7120be24bbcce3c32ff3e257a2690aa27af00eaa/src/components/Lightbox/index.tsx#L103

@mvtglobally can you share a video of what you saw instead? Was the image not reduced? Did you see the loading pattern?

Nope I still see the issue

@tienifr Thanks for the explanation here https://github.com/Expensify/App/issues/35615#issuecomment-1963996981. I think it fine to leave the number of lighboxes to be as it is for now to avoid any performance regressions.

Given the design discussions we had. @tienifr 's proposal here https://github.com/Expensify/App/issues/35615#issuecomment-1922853744 to show loading indicator instead of fallbackSize looks good and works well.
🎀 👀 🎀
C+ Reviewed

Hmmmm but is the proposal from @tienifr making the LoadingIndicator show? I see you said:

the LoadingIndicator will show here so the UX is smooth.

So, maybe how this works is like this?

Image is loading (loading indicator shows)
Image loaded, but dimensions not determined yet (loading indicator is not there and image neither)
Image loaded, dimensions computed (image shows properly)

@tienifr bump

Hmmmm but is the proposal from @tienifr making the LoadingIndicator show? I see you said:

the LoadingIndicator will show here so the UX is smooth.

So, maybe how this works is like this?
* Image is loading (loading indicator shows)

* Image loaded, but dimensions not determined yet (loading indicator is not there and image is neither as its opacity is 0)

* Image loaded, dimensions computed (image shows properly)

@iwiznia  I don't exactly understand the question here. But as far as the usecase goes, we will show the image only after the image is loaded and the dimensions are computed. Until then loader will be shown.
Hope it clarifies.

Currently: loading indicator shows and the image with the wrong size is shown briefly

Ahhh got it!

Payment has been issued and regression test issue has been created. Closing! 🎉


Introduce roles alongside permissions

Permissions are assigned to users against apps. Roles, OTOH, are assigned to teams within organizations.
Roles potentially replace the hardcoded "Owners" role that exists at the database level.

As discussed in #128 (context objects), app-level roles shouldn't be mixed up with Lastuser roles. We should drop that entirely from the scope of this ticket.
This leaves us with a fairly simple role definition:
class ROLE(LabeledEnum):
    owner = (1, 'owner', __("Owner"))
    admin = (2, 'admin, __("Admin"))
    member = (3, 'member', __("Member"))

role is now a status column on the relationship that makes users part of a team or organization.

Role definitions:

Users can have a role in an organization (per #151). Being an "owner" gives them full control of the organization. Being an "admin" gives them control over membership not including owners, and no access to organization settings such as the username and title. Being a "member" grants no privileges.

Users can have roles in teams. The same principles apply, but these roles do not extend to the organization.

Optional: Teams can have roles in organizations (same set of roles). This has potential complications and can confuse users, so we should consider not supporting this. For example, a user with "Member" role in a Team that in turn has "Owner" role on the Organization is now an owner even though they think they are a member: ownership of the organization trickles down into ownership of the team and a member of the team is now an owner of the team.

Wow. This was one of the first things we tried to flesh out back in Nov 2014.

If we remove the Members and Owners teams, this may break Flask-Lastuser, which expects userids against them, especially when syncing teams in the client app.

Example from Telegram of permissions attached to a role. If we use this approach, apps can specify additional permissions to Lastuser, which it can include in the UI.

If we remove the Members and Owners teams, this may break Flask-Lastuser, which expects userids against them, especially when syncing teams in the client app.

As discussed in #232:
Temporary workaround: every organization has two uuid columns to represent owners and members, and the API passes these on in place of teams; all other teams will be deleted.
Roles will be limited to Admin or Member and specified as an admin flag on the org membership model. We'll eschew more elaborate role definition for now while we migrate organisations to Funnel as per #232.

Following from #232, organizations and roles will move into Funnel via hasgeek/funnel#401. This ticket is no longer necessary. Lastuser's code will remain untouched, only marked as deprecated, until client apps have been reoriented to Funnel and the code can be removed.


Persistent fs_event_error_reporting CI failures on macOS 10.15

To support https://github.com/libuv/libuv/pull/2682 a cmake based job was added for macOS. The first CI macOS hosts to have cmake added to them were 10.15 (as we were setting those up from scratch). There's a persistent failure in the CI with v1.x on the 10.15 hosts that we're not seeing on 10.11:
e.g. https://ci.nodejs.org/view/libuv/job/libuv-test-commit-osx-cmake/26/nodes=osx1015/console
not ok 48 - fs_event_error_reporting
# timeout
# Output from process `fs_event_error_reporting`: (no output)

FWIW @bnoordhuis wasn't able to reproduce on macOS 10.14.

Couldn't reproduce the issue locally on macOS 10.15.3

As a test I temporarily added macOS 10.14 into the test matrix for the libuv-test-commit-osx-cmake job and it had a similar failure: https://ci.nodejs.org/job/libuv-test-commit-osx-cmake/nodes=osx1014/105/console
So maybe it's something to do with how the CI machines are set up? We're seeing the failure on the macOS 10.15 CI machines both in macstadium (the Orka environment) and the machine at NearForm.

FWIW, I can't reproduce this locally on macOS 10.14 either.

cc @AshCripps for awareness

The 10.15 macs in CI are 10.15.4 so maybe theres some bug in that version, where is the test code/what do they do so I can take a quick look

@AshCripps it's the libuv test suite, so you'd need to build libuv then run its tests (https://github.com/libuv/libuv#build-instructions, we're using cmake in the CI).

Im being spammed with accept firewall connection running the test suite, is there something im supposed to do to stop that? (like how node has the macos-firewall.sh script)

Strangly following the build instructions Richard linked I cant even replicate the issue on both the failing machines in CI 👀.

It's happening for me as well in CI https://github.com/p5-UV/Alien-libuv/runs/702109220#step:8:548

I did some printf debugging in the CI, and it looks like the test is legitimately timing out. I was able to get the test passing in the CI by bumping the timeout. It looks like the hrtime test is timing out as well.

Should I put in another issue for the other test failures that seem to happen on every CI run?

@cjihrig If that's all it takes to get it to pass then let's do it.
@genio Legitimate failures, sure, but I think those failures may be caused by Actions disallowing (some kinds of) UDP traffic? I'd be okay with skipping those tests if there's a good way to detect that.

OK: https://github.com/libuv/libuv/pull/2865

@bnoordhuis The same tests ran fine on the linux Actions, so I'll try checking the macos firewall on the machine running to see if that yields better results and go from there.

No difference. I doubt they have different policies set for each OS, but who knows. You might be right and they may be blocking some things that we have no control over.


Transitioning between 2d to 3d cause orbit path's to render in front of the globe

Sandcastle example: Sorry don't have the time and resources (my code was developed in Angular)
This issue did still appear on latest version of Cesium also.

first directly go to the 2d display before selecting any point(for some reason if you start in 3d it will work as expected).
The object I'm using to render the path is a PointPrimitive which we selected from the Scene using Pick().
We then add a PathGraphic to the point by assigning it to the PointPrimitive.id.path = new PathGraphic()

  /**
   * Adds orbit path to Cesium
   * @param pickedObject The object to add to the trailing orbit path. <-- this object is the
   */
  addOrbitPath(pickedObject: any) {
     // Adds the orbit path.
     let glowLine = new Cesium.PolylineGlowMaterialProperty({
      color: Cesium.Color.BLUE,
    });
    let path = new Cesium.PathGraphics({
      leadTime: 5200,
      trailTime: 0,
      material: glowLine,
      width: 10,
    });
    pickedObject.id.path = path;
  }

After the path is render switch to 3d (Notice the lines are displayed infront of the globe

After Workaround(code below) patch, and expected result

Here is the pickedObject chrome output, may help
{primitive: PointPrimitive, collection: PointPrimitiveCollection, id: Entity}
collection: PointPrimitiveCollection {_sp: ShaderProgram, _spTranslucent: ShaderProgram, _rsOpaque: RenderState, _rsTranslucent: RenderState, _vaf: VertexArrayFacade, …}
id: Entity {_availability: TimeIntervalCollection, _id: "43013", _definitionChanged: Event, _name: "--redacted--", _show: true, …}
primitive: PointPrimitive {_show: true, _position: Cartesian3, _actualPosition: Cartesian3, _color: Color, _outlineColor: Color, …}
__proto__: Object

Browser: Chrome
Operating System: Windows
Work Around
To resolve this issue I stored all of the PointPrimitive's and remove them during the start of the transition from 2d to 3d and add them back in at the end of the transition. This doesn't show the lines as it morphs like it does when you switch from 3d to 2d, but it doesn't mess up the display of the path's either.
   // Remove all of the Picked Objects(aka PointPrimitives) from the global list of selectedCrafts
    this.cesiumViewer.scene.morphStart.addEventListener((ignore, previousMode, newMode) => {
      if (previousMode === SceneMode.SCENE2D && newMode === SceneMode.SCENE3D) {
        for (let index = 0; index < this.selectedCrafts.length; index++) {
          // Remove the orbit path.
          const pickedObject = this.selectedCrafts[index];
          pickedObject.id.path = undefined;
          this.removeOrbitPath(pickedObject);
        }
      }
    });
 this.cesiumViewer.scene.morphComplete.addEventListener((ignore, previousMode, newMode) => {
      if (previousMode === SceneMode.SCENE2D && newMode === SceneMode.SCENE3D) {
       // Iterate through each stored object, and
        for (let index = 0; index < this.selectedCrafts.length; index++) {
          const pickedObject = this.selectedCrafts[index];
          this.addOrbitPath(pickedObject); // this is the code snippet shown above
        }
      }
    });

Thanks for opening an issue @AshitakaLax! We'll look into this once we get a chance.


Add SQL authenticator

I've written a basic authenticator, similar to the dict authenticator, that stores credentials as sha256-hashed values in a SQL database. It also ships with CLI tools for CRUD operations on the credentials table (like creating users or updating passwords).
It's built around sqlmodel, so it should work with any kind of SQL backend.
I don't know how you feel about adding more authenticator plugins, so if you feel like I should rather put this in a separate repository, feel free to close this PR.

Hey, wow, that's cool!
How do you feel about using passlib (https://passlib.readthedocs.io/) instead of plain sha256?

Would it make sense to also add a password salt for extra security?

yeah I was hoping that passlib would do all that :)

Hey, wow, that's cool!
How do you feel about using passlib (https://passlib.readthedocs.io/) instead of plain sha256?

Glad you like it. 🙂
Thanks for pointing me to passlib, I'll use that instead.

yeah I was hoping that passlib would do all that :)

Yes, I think so too: https://passlib.readthedocs.io/en/stable/#welcome

Hey, I didn't check deeply before, but I am just wondering now if you want to use a different database on purpose?
Because you can also create a new table for your plugin and use that table as part of the Quetz SQL database for the storage of the authentication information.
E.g. here is another plugin creating a table: https://github.com/mamba-org/quetz/blob/main/plugins/quetz_conda_suggest/quetz_conda_suggest/db_models.py

You would also have to define a migration but that can be auto-generated: https://github.com/mamba-org/quetz/tree/main/plugins/quetz_conda_suggest/quetz_conda_suggest/migrations/versions

Sorry, this PR has gotten a bit stale. I will try to get back to it the week after next week.

You would also have to define a migration but that can be auto-generated: https://github.com/mamba-org/quetz/tree/main/plugins/quetz_conda_suggest/quetz_conda_suggest/migrations/versions

hi @wolfv! the credentials table for the SQL authenticator is now part of the quetz database and written in sqlalchemy instead of sqlmodel. I'm not entirely sure how to create the migration with alembic, though (never used it before). I guess what's confusing me the most is that we have the main migrations directory under quetz/migrations but then quetz_conda_suggest has its own migrations directory, which doesn't contain an env.py or a script.py.mako.
Could you provide me with some more instructions on how to make the migration work, please? Once I have that part working, I'd start building some basic tests.

Sorry for ignoring the questions regarding the database migrations. I believe the quetz command line utility has some helper functions to generate initial migrations from the sqlalchemy schema (even for plugins):
(base) ➜  quetz git:(main) ✗ quetz make-migrations --help

 Usage: quetz make-migrations [OPTIONS] [PATH]

 make database migrations for quetz or a plugin

╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│   path      [PATH]  The path of the deployment [default: None]                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --message                          TEXT  revision message [default: None]                                                                                │
│ --plugin                           TEXT  head or heads or plugin name [default: quetz]                                                                                │
│ --initialize    --no-initialize          initialize migrations [default: no-initialize]                                                                                │
│ --help                                   Show this message and exit.                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

This should populate the right files that are then used by quetz init-db to execute the schema migrations.

great!

@wolfv Do you know why the tests are failing? Is it because there are no tests?

@wolfv Do you know why the tests are failing? Is it because there are no tests?

I guess yes

seems like it, indeed!

Are you going to add a couple of tests? I think that'd be good anyways

Are you going to add a couple of tests? I think that'd be good anyways

Yep, working on it 👌🏼

Codecov Report
Base: 82.53% // Head: 81.64% // Decreases project coverage by -0.89% :warning:

Coverage data is based on head (ed14929) compared to base (ede8731).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #508      +/-   ##
==========================================
- Coverage   82.53%   81.64%   -0.90%
==========================================
  Files          78       78
  Lines        6048     6059      +11
==========================================
- Hits         4992     4947      -45
- Misses       1056     1112      +56

Impacted Files
Coverage Δ

quetz/pkgstores.py
42.45% <0.00%> (-11.60%)
:arrow_down:

quetz/tasks/mirror.py
89.43% <0.00%> (-1.06%)
:arrow_down:

quetz/rest_models.py
99.41% <0.00%> (ø)

quetz/database_extensions.py
56.36% <0.00%> (ø)

quetz/main.py
86.87% <0.00%> (+0.01%)
:arrow_up:

quetz/dao.py
89.16% <0.00%> (+0.21%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@simonbohnen you can also run GHA in your personal fork (maybe you have to open another PR in your own repo for the tests to run)

@simonbohnen you can also run GHA in your personal fork (maybe you have to open another PR in your fork repo for the tests to run)

Thanks 👌🏼 For some previous runs on Jan's fork, a lot of the tests seemed to be failing, so I thought there was some difference e.g. in the secrets setup. But for the latest runs everything is passing on his fork as well 👌🏼

@jonashaag looking forward to your feedback! 😁

To the migration comment: Yes, I did adjust it manually. But having it in the model makes more sense ofc, I changed it.

I'm stuck on testing the API routes. They register and work when I run quetz start, but they always return 404 in pytest. You can see a sample failed test here. I thought registering the routes like this was sufficient, but I guess e.g. quetz-conda-suggest must be doing something else, because the tests are passing for that plugin. Can you help me here @janjagusch @wolfv?

like this

I'm afraid I can't help here. Would pass this on to @wolfv.

I'm unable to resolve the conversations, but that shouldn't matter I guess. @wolfv do you have any feedback on the current state? Jan's comment might be relevant.


Research if we need a specified Base e2e test

Depending on #2006 we need to see if it is necessary to have our own e2e test for the Base rollup.
Looking at the repository, the node on base is a pretty up to date op-geth fork. But I'd say it depends on the codebase of the relayer if a specific local e2e for base is needed

@fredo can you share a link to the repository please?


Fix GHC 7.10 warnings

I'm afraid your patch is obsolete by #141 which avoids CPP and doesn't break on GHC 7.2

Fine with me. Can you please cherry-pick the first commit into your branch?

Closing in favour of #141.

Can you please cherry-pick the first commit into your branch?

done (I hope)


refactor: migrate mako and munch to jinja2 template for alert actions Python generation

Codecov Report

Merging #269 (05531cc) into main (234f1e9) will decrease coverage by 0.17%.
The diff coverage is 95.45%.

@@            Coverage Diff             @@
##             main     #269      +/-   ##
==========================================
- Coverage   59.80%   59.63%   -0.18%
==========================================
  Files          43       45       +2
  Lines        2625     2621       -4
==========================================
- Hits         1570     1563       -7
- Misses       1055     1058       +3

Impacted Files
Coverage Δ

..._core/arf_template/alert_action_helper.py.template
33.33% <0.00%> (ø)

...r_alert_builder/build_core/alert_actions_py_gen.py
75.00% <100.00%> (-4.39%)
:arrow_down:

tests/unit/test_alert_actions_py_gen.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

:tada: This PR is included in version 5.5.5 :tada:
The release is available on:

v5.5.5
GitHub release

Your semantic-release bot :package::rocket:


Tests are not shipped with released archive

Hello,
When reviewing openSUSE package I've noticed that param does not ship the tests with the released archive on pypi.
On distribution side we try to execute tests to avoid regressions caused by updating other python components as such it would be great if we could use the pypi tarball.
Current workaround is that we use github tag.

Closing. Already covered by #219


Is it possible to get the RulesEngine instance in the custom Action?

Currently, in the custom Actions, within the Run method, there is no way of getting the instance of the RulesEngine, ActionContext also doesn't supply a property/method of referencing the RulesEngine instance.
Is it possible to do that?

@daxnet Currently it is not possible to pass same RulesEngine instance to a custom action but it is possible to pass a different instance.
Can you share your requirement? it will help us identify the need to access RulesEngine instance in an action.


Umbraco 9 RC - package.manifest keeps regenerating

Hi,
I've been updating the default DTGE /App_Plugins/DocTypeGridEditor/package.manifest to allow individual editors to show when selecting from a grid:
{   "gridEditors": [     {       "name": "Doc Type",       "alias": "docType",       "view": "/App_Plugins/DocTypeGridEditor/Views/doctypegrideditor.html",       "render": "/App_Plugins/DocTypeGridEditor/Render/DocTypeGridEditor.cshtml",       "icon": "icon-science",       "config": {         "allowedDocTypes": [],         "nameTemplate": "",         "enablePreview": true,         "viewPath": "/Views/Partials/Grid/Editors/DocTypeGridEditor/",         "previewViewPath": "/Views/Partials/Grid/Editors/DocTypeGridEditor/Previews/",         "previewCssFilePath": "",         "previewJsFilePath": ""       }     },     {       "name": "Embed Video",       "alias": "embedVideo",       "view": "/App_Plugins/DocTypeGridEditor/Views/doctypegrideditor.html",       "render": "/App_Plugins/DocTypeGridEditor/Render/DocTypeGridEditor.cshtml",       "icon": "icon-science",       "config": {         "allowedDocTypes": [ "embedVideo" ],         "nameTemplate": "",         "enablePreview": true,         "viewPath": "/Views/Partials/Grid/Editors/DocTypeGridEditor/",         "previewViewPath": "/Views/Partials/Grid/Editors/DocTypeGridEditor/Previews/",         "previewCssFilePath": "",         "previewJsFilePath": ""       }     }   ],   "javascript": [     "~/App_Plugins/DocTypeGridEditor/Js/doctypegrideditor.resources.js",     "~/App_Plugins/DocTypeGridEditor/Js/doctypegrideditor.services.js",     "~/App_Plugins/DocTypeGridEditor/Js/doctypegrideditor.controllers.js",     "~/App_Plugins/DocTypeGridEditor/Js/doctypegrideditor.directives.js"   ],   "css": [     "~/App_Plugins/DocTypeGridEditor/Css/doctypegrideditor.css"   ] }
However with each build, it appears to reinstall the DTGE, overriding any changes I make.
Any ideas why?
EDIT:
I also tried to create a separate package.manifest file mimicking the one from DTGE - this time it appears, however when selected it throws the following error:
`Received an error from the server
An error occurred
Value cannot be null. (Parameter 'pattern')
Exception Details
System.ArgumentNullException, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e: Value cannot be null. (Parameter 'pattern')
Stacktrace
at System.Text.RegularExpressions.ThrowHelper.ThrowArgumentNullException(ExceptionArgument arg)
at System.Text.RegularExpressions.RegexCache.GetOrAdd(String pattern)
at System.Text.RegularExpressions.Regex.IsMatch(String input, String pattern)
at Our.Umbraco.DocTypeGridEditor.Controllers.DocTypeGridEditorApiController.<>c__DisplayClass13_1.b__5(String y)
at System.Linq.Enumerable.Any[TSource](IEnumerable1 source, Func2 predicate)
at Our.Umbraco.DocTypeGridEditor.Controllers.DocTypeGridEditorApiController.<>c__DisplayClass13_0.b__1(IContentType x)
at System.Linq.Enumerable.WhereListIterator1.ToArray()    at System.Linq.Buffer1..ctor(IEnumerable1 source)    at System.Linq.OrderedEnumerable1.ToList()
at Our.Umbraco.DocTypeGridEditor.Controllers.DocTypeGridEditorApiController.GetContentTypes(String[] allowedContentTypes)
at lambda_method733(Closure , Object , Object[] )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)`
Since it mentioned Regex, I had then updated the document type that I used as part of the DTGE, which had a textarea and a textstring, and added an email validation to both (just for testing) and the same error message still persisted.
Thanks

I guess that is how net core works, on build the package files gets copied into wwwroot. You should add your own package.manifests for your own editors.

Hi @skttl
I did create my own package.manifests files and you can see the error message pasted above. Here it is again:
I also tried to create a separate package.manifest file mimicking the one from DTGE - this time it appears, however when selected it throws the following error:
`Received an error from the server
An error occurred
Value cannot be null. (Parameter 'pattern')
Exception Details
System.ArgumentNullException, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e: Value cannot be null. (Parameter 'pattern')
Stacktrace
at System.Text.RegularExpressions.ThrowHelper.ThrowArgumentNullException(ExceptionArgument arg)
at System.Text.RegularExpressions.RegexCache.GetOrAdd(String pattern)
at System.Text.RegularExpressions.Regex.IsMatch(String input, String pattern)
at Our.Umbraco.DocTypeGridEditor.Controllers.DocTypeGridEditorApiController.<>c__DisplayClass13_1.b__5(String y)
at System.Linq.Enumerable.Any[TSource](IEnumerable1 source, Func2 predicate)
at Our.Umbraco.DocTypeGridEditor.Controllers.DocTypeGridEditorApiController.<>c__DisplayClass13_0.b__1(IContentType x)
at System.Linq.Enumerable.WhereListIterator1.ToArray() at System.Linq.Buffer1..ctor(IEnumerable1 source) at System.Linq.OrderedEnumerable1.ToList()
at Our.Umbraco.DocTypeGridEditor.Controllers.DocTypeGridEditorApiController.GetContentTypes(String[] allowedContentTypes)
at lambda_method733(Closure , Object , Object[] )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)`
Since it mentioned Regex, I had then updated the document type that I used as part of the DTGE, which had a textarea and a textstring, and added an email validation to both (just for testing) and the same error message still persisted.

That has already been reported in #251, its a "bug/feature" in core. Not sure how to fix yet.

I see, thanks for the quick responses @skttl

You are welcome, thanks for testing the beta 🙂

I don't understand this. Are we supposed to change the default package.manifest, or create a new one? When I change the default it gets overwritten whenever I build. I've never had multiple package.manifest files... can I just create a new .manifest file with a different name? I tried that and I still only get the (docType) and (picture) entries.

OK, I think I get it. I made a new folder App_Plugins/MyVerySpecialDocTypeGridEditors and added a package.manifest in there.
Seems less than ideal -- I still have the generic "Doc Type" and "Picture" available -- but it works.


[BUG] All keys not working in Sequencer Megababy JS scripts

The sequencer megababy series of plugins do not work with the Ctrl key modifiers (tested in Ardour). Shift seems to work well.
To Reproduce
Steps to reproduce the behavior:
Load any of the sequencer megababy JS scripts, attempt to adjust the velocity of a note using the Ctrl+Left mouse drag.
Expected behavior
The velocity of the note should be altered.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Windows 11

Confirmed. Shouldn't be too hard to fix. Will report back when I tested the modifiers work correctly on all three platforms.

I opened a PR to fix this here. Could you try the following and see if it works as intended? I'll wait with merging until you confirm that it works as intended.
Windows 64-bit VST3.zip
Do note that I do not yet support the windows key.

It working as expected now. Thanks for the fix!

Great! I'll go ahead and merge it then! Thanks for the bug report and for reporting back!


It is not working in the beta version

Challenge passing-values-to-functions-with-arguments has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.

// Example
function ourFunctionWithArgs(a, b) {
  console.log(a - b);
}
ourFunctionWithArgs(10, 5); // Outputs 5

// Only change code below this line.
function functionWithArgs(array1,array2){
  console.log(array1+array2);
}
functionWithArgs(1,2);
functionWithArgs(7,9);

Your solution passes for me in Vivaldi. Have you tried refreshing the page?

Nothing is wrong with this challenge. It says create a function called functionWithArgs not ourFunctionWithArgs.

@ooade ourFunctionWithArgs is the starting example code. There's a comment that says // Only change code below this line and the correct solution is below that line

@Margaret2 Oh, Yeah. But it works, even on Mozilla.

Can confirm that it still works (also mozilla) & suggest closing.

Hi! Thanks for reporting and looking into this issue.
I'm closing this as a duplicate of https://github.com/freeCodeCamp/freeCodeCamp/issues/15024. It's about the same problem but has a bit more info.
Happy coding!


fluent-bit config works as expected and yet it does not work in newrelic UI

Description
I'm trying to use newrelic-infra logging configuration to forward logs to newrelic. Specifically, I am trying to use a custom fluent-bit configuration.
I can see the configuration is working exactly as expected when I output to a file on disk:
$ tail -1 /var/log/fluent-bit.out
caddy.proxy: [1704969865.913642137, {"log":{"level":"info","logger":"http.log.access.log3"},"bytes_read":0,"client":{"port":"38291","ip":"<IP_ADDRESS>"},"entity.guid.INFRA":"MzE3Mzg0M3xJTkZSQXxOQXw0NTA4NTc4NTg5MjM2MTgwMTc2","msg":"handled request","filePath":"/var/log/caddy/proxy.log","plugin.type":"nri-agent","fb.input":"tail","http":{"response":{"headers":{"Server":["Caddy"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Etag":["\"s6n2a3p2\""],"Content-Encoding":["gzip"],"Last-Modified":["Tue, 02 Jan 2024 14:44:27 GMT"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["public, max-age=604800, s-maxage=86400, stale-while-revalidate=3600, must-revalidate"],"Content-Type":["text/javascript; charset=utf-8"],"Access-Control-Allow-Methods":["GET"],"Vary":["Accept-Encoding"]},"status_code":200},"request":{"host":"***","uri":"/assets/js/jquery.isonscreen.min.js?v1.4.38","headers":{"User-Agent":["Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"],"From":["googlebot(at)googlebot.com"],"Accept-Encoding":["gzip, deflate, br"],"Connection":["keep-alive"],"Accept":["*/*"],"Cookie":{},"Referer":["***"],"Accept-Language":["en-US"]},"client_ip":"<IP_ADDRESS>","tls":{"proto":"","cipher_suite":4865,"resumed":false,"server_name":"***","version":772},"remote_ip":"<IP_ADDRESS>","proto":"HTTP/1.1","remote_port":"38291","method":"GET"}},"hostname":"***","service":"caddy.proxy","duration":0.000388375,"size":363,"message":"GET /assets/js/jquery.isonscreen.min.js?v1.4.38"}]

{
  "log": {
    "level": "info",
    "logger": "http.log.access.log3"
  },
  "bytes_read": 0,
  "client": {
    "port": "38291",
    "ip": "<IP_ADDRESS>"
  },
  "entity.guid.INFRA": "MzE3Mzg0M3xJTkZSQXxOQXw0NTA4NTc4NTg5MjM2MTgwMTc2",
  "msg": "handled request",
  "filePath": "/var/log/caddy/proxy.log",
  "plugin.type": "nri-agent",
  "fb.input": "tail",
  "http": {
    "response": {
      "headers": {
        "Server": [
          "Caddy"
        ],
        "Alt-Svc": [
          "h3=\":443\"; ma=2592000"
        ],
        "Etag": [
          "\"s6n2a3p2\""
        ],
        "Content-Encoding": [
          "gzip"
        ],
        "Last-Modified": [
          "Tue, 02 Jan 2024 14:44:27 GMT"
        ],
        "Access-Control-Allow-Origin": [
          "*"
        ],
        "Cache-Control": [
          "public, max-age=604800, s-maxage=86400, stale-while-revalidate=3600, must-revalidate"
        ],
        "Content-Type": [
          "text/javascript; charset=utf-8"
        ],
        "Access-Control-Allow-Methods": [
          "GET"
        ],
        "Vary": [
          "Accept-Encoding"
        ]
      },
      "status_code": 200
    },
    "request": {
      "host": "***",
      "uri": "/assets/js/jquery.isonscreen.min.js?v1.4.38",
      "headers": {
        "User-Agent": [
          "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
        ],
        "From": [
          "googlebot(at)googlebot.com"
        ],
        "Accept-Encoding": [
          "gzip, deflate, br"
        ],
        "Connection": [
          "keep-alive"
        ],
        "Accept": [
          "*/*"
        ],
        "Cookie": {},
        "Referer": [
          "***"
        ],
        "Accept-Language": [
          "en-US"
        ]
      },
      "client_ip": "<IP_ADDRESS>",
      "tls": {
        "proto": "",
        "cipher_suite": 4865,
        "resumed": false,
        "server_name": "***",
        "version": 772
      },
      "remote_ip": "<IP_ADDRESS>",
      "proto": "HTTP/1.1",
      "remote_port": "38291",
      "method": "GET"
    }
  },
  "hostname": "***",
  "service": "caddy.proxy",
  "duration": 0.000388375,
  "size": 363,
  "message": "GET /assets/js/jquery.isonscreen.min.js?v1.4.38"
}

Expected Behavior
I expect the above values to also appear in newrelic logging UI.
However, in newrelic logs UI, I see that msg is used as message for some reason unknown to me. But if I remove msg from the record entirely using a FILTER, message is still not used as message in the UI. Instead I end up with an empty message in newrelic logging UI then.
The same goes for the nested log entry. In newrelic UI I only see the root level and logger, not the nested values.
Steps to Reproduce
/etc/newrelic-infra/logging.d $ tail -n +1 caddy*
==> caddy.fluentbit.conf <==
[INPUT]
  Name tail
  Path /var/log/caddy/proxy.log
  Path_Key filePath
  DB /var/db/newrelic-infra/newrelic-integrations/logging/fb.db
  Parser json_parser
  Tag caddy.proxy

[INPUT]
  Name tail
  Path /var/log/caddy/backend.log
  Path_Key filePath
  DB /var/db/newrelic-infra/newrelic-integrations/logging/fb.db
  Parser json_parser
  Tag caddy.backend

[INPUT]
  Name tail
  Path /var/log/caddy/development.log
  Path_Key filePath
  DB /var/db/newrelic-infra/newrelic-integrations/logging/fb.db
  Parser json_parser
  Tag caddy.development

[FILTER]
  Name record_modifier
  Match caddy.*
  Record fb.input tail

[FILTER]
  Name lua
  Match caddy.*
  Call callback
  Script /etc/newrelic-infra/logging.d/caddy.lua

[OUTPUT]
  Name file
  Match *
  Path /var/log
  File fluent-bit.out

==> caddy.lua <==
function callback(tag, timestamp, record)

  -- set some basic keys and cleanup redundant keys
  record["service"] = tag
  record["user_id"] = nil
  record["ts"] = nil
  record["message"] = record.request.method .. ' ' .. record.request.uri
  --record["msg"] = nil

  -- create nested log and cleanup redundant keys
  record["log"] = {}
  record["log"]["level"] = record.level
  record["log"]["logger"] = record.logger
  record["level"] = nil
  record["logger"] = nil

  -- create nested response and cleanup redundant keys
  record["response"] = {}
  record["response"]["status_code"] = record.status
  record["response"]["headers"] = record.resp_headers
  record["status"] = nil
  record["resp_headers"] = nil

  -- create nested client
  record["client"] = {}
  record["client"]["ip"] = record.request.remote_ip
  record["client"]["port"] = record.request.remote_port

  -- nest request and response under http and cleanup redundant keys
  record["http"] = {}
  record["http"]["response"] = record.response
  record["http"]["request"] = record.request
  record["response"] = nil
  record["request"] = nil

  return 2, timestamp, record
end

==> caddy.parser.conf <==
[PARSER]
  Name json_parser
  Format json
  Time_Key ts
  Time_Format %s.%L

==> caddy.yml <==
logs:
  - name: caddy
    fluentbit:
      config_file: /etc/newrelic-infra/logging.d/caddy.fluentbit.conf
      parsers_file: /etc/newrelic-infra/logging.d/caddy.parser.conf

@alcohol This is an expected behaviour, msg attribute is a reserved attribute that is automatically mapped to the message, but, unfortunately, it was not explicitly mentioned in our documentation. We have filed a PR in our documentation to explicitly mention this in our public documentation (https://github.com/newrelic/docs-website/pull/17532). Sorry for the inconveniences.

@jdearana-nr  but that does not entirely answer my question? What I understand from your comment is that msg is mapped to message upon ingest (so on your end -- or do I get this wrong?). But if I remove msg using LUA in my pipeline before the data is send to newrelic, message (also present in my data) was not used as message, instead message on your end ended up as an empty property. Is this because previously msg was mapped to message and so now the ingest point or index always expects msg to be present?


Added code to support old android devices.

Hi are you there? I've tested with this update, it is working fine on Android 2.3 to 6.0.

Yes, I am still here, but I don't have much time for testing. I'll allocate 30 minutes to it right now, I hop it will be enough.
Thanks for the compatibility work :)

Okay, It's my pleasure.

I have some more things to change, I'll hold it in the meantime. I think it will need some pen & paper thinking not to screw up everything.

Sure, No problem. you're the owner.

I did some refactoring so the code is a bit more compact and readable, plus I kept the possibility to have different notification sounds and patterns for every notification depending on its type.
Could you please check if I haven't messed up something? From my tests, it seems to be working.

I checked it, you really made the code clean and readable, good job


Installing Vistio on Linux/Windows

Hi there - We are using Prometheus in a non-container infrastructure and looking to visualize our network activity using Vistio.  Is there any documentation on how to install Vistio on a Linux/Windows machines? or on how to build a binary using the source code?

This shouldn't be too hard, you can either install docker on your vm instances and pull the docker containers. Or refer to how the docker containers in the api and web and see how the projects are being built.


Multiple regressions in 1.0.2

The regressions might have been present in version 1.0.0, but I haven't verified it. I simply used the latest available version. Some of these issues could be intentional (though I hope not). Please consider this a mega-thread of challenges I faced while migrating to the newer version. 😃
Environment:

Windows 10
Python 3.11.3
pip freeze.txt

i18n 1.0.2 plugin config
  - i18n:
      docs_structure: suffix
      languages:
        - name: en - English
          locale: en
          default: true
          build: true
          nav_translations:
            Afsp: AFSP
            Anims: Animations
            Contribute: How To Contribute
            Daedalus tools: Daedalus
            General info: General information
            Genome: Genome (G3/R1)
            Lego: LeGo
            Vdfs tools: VDFS
            Zengin: ZenGin (G1/G2)
            Zgamepad: zGamePad
            Zparserextender: zParserExtender
        - name: pl - Polski
          locale: pl
          default: false
          build: !ENV [GMC_ENABLE_ON_PUBLISH, True]
          site_description: 'Gothic Modding Community to zbiór pomocnych materiałów do modowania gier Gothic i Risen.'
          nav_translations:
            Anims: Animacje
            Applications: Zastosowania
            Classes: Klasy
            Contribute: Jak Się Udzielić
            Examples: Przykłady
            Extenders: Extendery
            Extensions: Rozszerzenia
            Functions: Funkcje
            General info: Informacje ogólne
            Home: Strona Główna
            Plugins: Wtyczki
            Scripts: Skrypty
            Sound: Dźwięk
            Standalone: Samodzielne
            Syntax extensions: Rozszerzenia składni
            Tools: Narzędzia
            Tutorials: Poradniki
            Various: Różne
            Worlds: Światy
        - name: cs - Čeština
          locale: cs
          default: false
          build: !ENV [GMC_ENABLE_ON_PUBLISH, True]
          site_description: 'Dokumentace, návody a články zaměřené na modování her Gothic a Risen.'

File structure
https://tree.nathanfriend.io/
.
├── docs/
│   ├── some_dir/
│   │   └── some_more_dirs
│   ├── index.md # Default language AND fallback
│   ├── index.pl.md # Polish language
│   └── index.cs.md # Czech language
├── overrides/
│   ├── assets/
│   │   ├── images/
│   │   ├── javascript/
│   │   └── stylesheets/
│   └── main.html
└── mkdocs.yml

Issues:

Relative Path Warnings:
When building subsequent languages, warnings appear for relative paths to the overrides directory (no issues for the default language).
INFO    -  mkdocs_static_i18n: Translated 23 navigation elements to 'pl'
WARNING -  Doc file 'zengin/scripts/classes/c_info.md' contains a relative link
       '../../../assets/images/c_info_description.png', but the target
       'assets/images/c_info_description.png' is not found among
       documentation files.

There's only a default language version of the file, and when the Polish version falls back to it, the path doesn't match. This warning wasn't present in plugin version 0.5.6* with MkDocs 1.5.2, although the error was partially there. With my MkDocs configuration using directory paths, the path gets altered with an additional ../ for the default language. In version 0.5.6, the paths in other languages were consistent with the default language. However, in version 1.0.2, they remain as is in the Markdown.

Global Parameters:
The previous default_language and default_language_only parameters were handy for CI and making swift local development changes using environment variables (GMC_DEFAULT_LANG, GMC_ONLY_DEFAULT_LANG). The new config seems to have reversed the behavior, making the default language obligatory. I might be able to work with that, but the subsequent issue is more concerning.

Language Toggling Issues:
Given that each language now has an individual toggle for default, it's not feasible to set a single environment variable. In addition, swapping the values temporarily (e.g., en <-> pl) is currently not possible due to the existing file structure:
Exception: Conflicting files for the default language 'pl': choose either 'index.pl.md' or 'index.md' but not both

The latest version seems to connect default with fallback. This results in a conflict when I aim to use index.pl.md as the default, while intending index.md to act as a fallback for the English version. I certainly don't intend to alter the file structure to accommodate files like index.en.md.

Build Time Logs:
The output displays individual build times for each build rather than a single cumulative log at the end.
INFO    -  Documentation built in 8.28 seconds
INFO    -  Documentation built in 35.00 seconds

I recall somewhat resolving this to show only the final time log, but maybe MkDocs 1.5 altered the way duplicate filters operate.

These are my primary concerns for now. I'll update this list as I progress further.

*Note: While I did use a modified variant of plugin version 0.5.6, to the best of my recollection, none of the regressions mentioned were connected to those modifications. See modifications here.

Debugging the 1st issue I've found this:
https://github.com/ultrabug/mkdocs-static-i18n/blob/cc4f380e36204c7d5aae6c569d2e204a0248cac9/mkdocs_static_i18n/reconfigure.py#L613-L615
The assets from the overrides are only added to the initial build. This triggered a memory of the same thing I fixed in the patch to the refactor, so I dig further:
https://github.com/ultrabug/mkdocs-static-i18n/blob/fb4bbf182f147c694cde07b0abbfb6f7b67952de/mkdocs_static_i18n/reconfigure.py#L508-L510
You did merge my fix, but later decided to remove it in https://github.com/ultrabug/mkdocs-static-i18n/commit/c2215b2b400e6a06dc89b6581ede2db04554dbbe
With the fix restored, no warnings appear related to those files, and they are correctly resolved in the webpage. I don't understand the rationale of limiting the assets to only the first run. Perhaps performance to not copy the files multiple times? The issue is that MkDocs relies on the files.url_sri to look for the valid assets when it resolves links in Markdown.

Investigating the 3rd issue, I've confirmed for myself that the default language is closely related to the fallback, especially the default file without any prefix is always assumed to be using the default locale. I've tried some things to "revert" the behaviour to the previous way, but I either introduced a bug somewhere else (like for example the alternate switcher also now relies on the extension locale, I think) or the performance got worse.
So I've accepted that there needs to be some sort of compromise here between the new and old behaviour.
Locally, I've decided to add a global development_locale config option, which allows to forcefully override any other default and build options, so that the development locale would be the default and only language being built, additionally the development build avoids the conflicting files scenario by prioritizing the filename.locale.md files instead of the filename.md files.
Therefore this global option partially fixes the 2nd and 3rd issues, I've written above.
It allows to quickly change the locale to a different one using environmental variables, and it allows to keep the older file structure setup while testing other languages.
I don't need the option to build all of the languages using another language as the default one, because English (without extension) will always be used as the default one for the deployment.

The 4th issue, has been dealt with in #257

@kamilkrzyskow since quite a lot have been done so far, would you be okay to close this PR and open a separate new one for the hopefully last problem you'd like us to solve?

Sure, I'll edit the OP and move the last issue to a separate issue.

Suppressed with #262


Issue with k8s.io/docs/tutorials/kubernetes-basics/explore-intro/

This is a...

[ ] Feature Request
[ ] Bug Report

Problem:
Proposed Solution:
Page to Update:
http://kubernetes.io/...

@not-dream :wave: If you have more details to add, please feel free to re-open this issue.


How to use prompt with image 2 video

I want to use prompt when using image2video to make the video output according to the context of the prompt. Please help me with the above problem. Thank you

image2video does not support text prompt, try text2video. iic/text-to-video-synthesis

oh, Thank you so much!!!


Set the stage reading mode in LeftAndMain

LeftAndMain is used as the foundation of the CMS.
All edits in the CMS should really be against the stage version of a DataObject otherwise there becomes inconsistencies (see https://github.com/silverstripe/silverstripe-cms/issues/1094)

Please rebase on 3 branch and I'll merge.

yes, I suppose... but I'd argue it's probably not a change in behaviour.
If you have un-versioned objects in a model admin, then it won't be an issue and if you do you've almost certainly already set this setting because you don'y want CMS users being in live mode when using the CMS!

see #5005

#5005 merged :)


Add batch_create_partition endpoint to Glue client

As the title says, this adds the batch_create_partition endpoint to the Glue client.

Coverage decreased (-0.2%) to 92.749% when pulling ebfaa6b3436f633aaa220f84dd60a3a6cdc2a80c on dkuntz2:glue-endpoints into 97ab7fd307dfee9598b77bbe1d2c5ea47b3c4abe on spulec:master.