Meltano Invoke does not invalidate catalog cache

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/2850
Originally created by @vischous on 2021-07-12 21:04:16

Problem to solve
When iterating in development with a database style tap I change my schemas a bunch. I want Meltano invoke to invalidate this cache. Instead I go into the run directory and manually delete the catalog.
Target audience
Meltano users utilizing database taps when they also change the database schema constantly. SaaS targets is one example.

View 5 previous comments from the original issue on GitLab


[.NET] Support JavaDoc trait

Issue
Currently, the Java generated code contains documentation
from the Smithy Model that is annotated with @javadoc.
.NET generated code does not.
Thus, products that use Smithy-Dafny for .NET do not get API documentation,
AND these products are harder to use in .NET.
Fix
Refactor the .NET generation logic to respect  @javadoc.
This is related to https://github.com/smithy-lang/smithy-dafny/issues/247,
but does not go as far.

While it seems very weird to support a trait named @javadoc on other languages, I understand the motivation here that existing projects have used @javadoc with plaintext content that doesn't use any CommonMark markup, and therefore is fine to use for other languages.
I think instead that smithy-dafny should support @documentation but with a validator that asserts that the content of each instance doesn't have any markup, and replace @javadoc with @documentation in existing models.

I am happy with that proposal!!
If #247 is refactored to your proposed scope,
this issue can be resolved as a duplicate.

Alternatively, #247 can be left alone and we could revise this issue to be your proposal.

Yes let's do that, since it would still be good to fully support @documentation with markup in the future.


Simplify Archetype variables

I'd like to encourage everybody who has an opinion on this to express himself/herself:
There seems to be room to reduce the number of variables that the archetype takes as parameter as we have currently over 20 variables.
My suggestions:

name should replace:

artifactName
packageGroup
componentGroupName
siteName

id should replace:

artifactId
appsFolderName
confFolderName
contentFolderName
cssId

package should be removed and created out of: ${groupId}.${id}
optionIncludeErrorHandler after implementing #290, this option should go away entirely (always have an error handler)
optionIncludeFrontendModule this option should be removed entirely (always include it)
optionAemVersion should be used as well for optionDispatcherConfig (if possible?)
optionDispatcherConfig should be removed entirely (always include it in the case of aem version being cloud)
version should default to 0.0.1-SNAPSHOT

This way, only following 6 parameters would be required:

archetypeGroupId=com.adobe.granite.archetypes
archetypeArtifactId=aem-project-archetype
archetypeVersion=23
name
id
groupId

And there would be following 5 optional parameters (notice some renaming):

aemVersion=6.5.0 (instead of optionAemVersion, and which can also be set to the cloud value for AEM as a Cloud Service)
projectVersion=0.0.1-SNAPSHOT (instead of version)
languageCountry=en_us (instead of language_country)
isSingleCountry=y (instead of isSingleCountryWebsite)
includeExamples=y (instead of optionIncludeExamples)

IMO, the bare minimum:

groupId - because Java
appId - for all ^[a-zA-Z0-9-_]+$  names
appTitle - for all huma-readable names

Optional, for overrides by user:

aemVersion - 6.5.0/cloud
appVersion - 0.0.1-SNAPSHOT
languageCountry - en_us
isSingleCountry - y
includeExamples - y

Maybe:

includeErrorHandler - y
includeFrontendBuild - y
sdkVersion

plus probably something like:

isSinglePageApp - n (could be react or angular)

I'm not sure that i agree the artifactId should match the other items listed under id.
Generally the Maven Artifact Id is a more verbose, where as the conf/content/app folder name is very succinct.

Removing optionDispatcherConfig prevents all AMS customers from having a pre-baked Dispatcher supported, Cloud Manager deployable module.

package being based off of ${groupId}.${id} presumes that the id is unique and succinct. It also assumes that the id will not have any package-invalid characters in it.
This does to my previous comment: Artifact Ids in a multi-tenant/complex environment should have more than a single-word name, to ensure clarity on their use and content.


Clean up misplaced items in stdlib

It seems like a fair number of function have been placed a bit haphazardly, e.g.

grumpkin_scalar_mul.nr vs scalar_mul.nr, why do we have this duplication? It's aztec code leaking into stdlib by the look of the serialization logic.
why aren't sha256 and sha512 included in the hash module? The compression function is defined there so why not the rest?

We should do a pass of placing things where they should be to address these and similar issues. We can make this change non-breaking by adding reexports such as
// stdlib/lib.nr
mod sha256 {
    use crate::hash::sha256::digest
}

It's also worth discussing if we want the hashers like crate::hash::poseidon2::Poseidon2Hasher to be in the same module as their actual hash function which is usually placed directly in crate::hash. Perhaps they should originate in the more specific modules and just be reexported into crate::hash, or maybe crate::hash should just be an empty module containing other more specific hash modules.

Yeah, I was thinking along the same lines when writing this issue. I'm very much in favour of splitting a lot of these files out and using reexports liberally. I'd generally say that any trait in the stdlib should be in its own file due to the amount of boilerplate trait implementations for the primitive types it'll include, e.g. Eq and Ord

Worth considering implementing #4860 around the same time.


local.conf.sample: Use B0 0x02 module variants as default

Currently (01/2021) stocks are still serving units with a B0 SOC type.
Changelog-entry: Default to B0 / 2GB / 32bits module variants
Signed-off-by: Alex Gonzalez<EMAIL_ADDRESS>

@balena-ci rebase

@balena-ci I self-certify!


Dbeaver giving privildges to other users

Hi everyone,
Recently our database admin left the project and gave me all the privileges and I am the database admin at the moment. When I want to give or change access to/of other users there is no permission tab or roles available on my dbeaver. Apart from the script is there any way to give permission by clicking the box against user? (it is PostgreSQL) Many Thanks

What is your database? DBeaver supports permission management for MySQL/MariaDB and PostgreSQL based databases.

@serge-rider it is postgreSQL

Yes, you can edit permission in PostgreSQL. It looks like you are using legacy PG driver (PostgreSQL (Old)), it doesn't support most of new PG features.
Just use regular PostgreSQL driver (create new connection or change driver of existing connection using main menu Database->Migrate connection).
This is how you table should look like:


Commit button should be disabled if I don't have any staged changes

Or at least show a notification after submitting the modal that nothing has happened.

We should try doing the same for the Push button as well, if there aren't any commits that can be pushed.


apply font to TextInputLayout

How can I apply TextInputLayout to a TextInputLayout error?
I've tried with
           app:errorTextAppearance="@style/FontStyle"
 <style name="FontStyle" parent="@android:style/TextAppearance">
        <item name="fontPath">"fonts/CondensedBold.otf"</item>
    </style>

But not working.

dup #201

The errorText is created and applied in code, not much I do about this (apart from a hacky work around) until they inflate the views.


Hiding conversations

I automatically generate a high number of conversations. I would like to automatically hide a conversation after I am finished with it.
I am willing to implement this myself and had a glance at the playwright code but think I need some guidance on this :sweat_smile:

That is a good idea. I would start by implementing
def remove_converstation(self, conversation_id:int) in chatgpt.py.
For that, I would first look in the develper console what happens in network when you delete a conversation and try to emulate the call in the function. I looked quickly into it, it seems to be a PATCH http request.

I saw that it is a PATCH request (using the uuid of the current conversation) but did not see how to submit requests with(in) Playwright.


chore: bdd-spring-1575979725 to 0.0.1

chore: Promote bdd-spring-1575979725 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Can't create new live log on branch

I have set up a local CI workflow based on self-ci. When I try to rebuild a failed build through the UI, I get the error
Can't create new live log on branch "docker-run-test_label-in-sha256-506f4a834ed365e58787feb88e0c5ef60e75c5975aae441e775cbba1cafcc88d";
one is already active!
=== Docker run test_label
[2018-03-22 12:58.55] Starting...
[2018-03-22 12:58.55] Running "docker" "run" "--rm" "--network" "host" "sha256:506f4a834ed365e58787feb88e0c5ef60e75c5975aae441e775cbba1cafcc88d"

I suppose this is a configuration error on my side, but I'm not sure what it means. Any help is appreciated.

That usually means that the function for calculating the branch name is missing some component of the key. i.e. you asked to build two different things, but storing the result with the same branch name.
Does the main page of the UI show something else building to that branch?

Well, my build is 1. build two docker containers, 2. run one of them. The container-building part works well and I can rebuild it. The error I mentioned comes from the second part (Docker.run).
Where is the "function for calculating the branch name" defined?

Should be something like:
https://github.com/moby/datakit/blob/74494b3bbc574941f0352bbc634b44d8ec925227/ci/src/cI_docker.ml#L183
Another possibility is that you're creating multiple in-memory caches. Check you're not calling Docker.create more than once with the same label.

No, I did not call Docker.create more than once with the same label.
My code is based on self-ci where I did not see an explicit definition of branch names.
[
  "runtests",  images#tests >>= fun img ->
               (Docker.run (Docker.command ~logs ~pool ~timeout:(30. *. minute) ~label:"test_label" ~network:"host" []) img)
               >|= fun () -> "Run succeeded"
]

I don't have to generate a new label everytime I use Docker.run do I?

No, test_label appears in the branch name, so that's not the problem.
It's been a while since I looked at this code, but maybe this is helpful:
The error is presumably coming from https://github.com/moby/datakit/blob/master/ci/src/cI_cache.ml#L204, which only gets called if branch_name isn't in the cache, checked at:
https://github.com/moby/datakit/blob/master/ci/src/cI_cache.ml#L273
That suggests that the branch name isn't in the cache, but a live log with that name exists.
Either it was never there (suggesting there are two instances of the cache), or it got removed by https://github.com/moby/datakit/blob/master/ci/src/cI_cache.ml#L140. But that won't remove pending builds, and only pending builds have logs.
That's because it only sets it to a non-pending value after removing the live log (https://github.com/moby/datakit/blob/master/ci/src/cI_cache.ml#L211), or after loading a saved result (but that never creates a live log in the first place).

Thanks for the links @talex5!
I've tried different combinations and this problem only seems to appear when I use Docker.run, not with Docker.build. (I could not try to run a single Docker.run though, cause it needs the image created by Docker.build.)
But I noticed some strange logs. When starting the ci:
ci_1  | 2018-03-22 15:58.57 INF [datakit-ci] Loaded cached result from git-pull-of-ee0f36f73dda4f3df4e18fdead0ba39ed2b1c05f
ci_1  | 2018-03-22 15:58.57 INF [datakit-ci] Loaded cached result from docker-build-Dockerfile.cucumber-of-ee0f36f73dda4f3df4e18fdead0ba39ed2b1c05f
ci_1  | 2018-03-22 15:58.57 INF [datakit-ci] Loaded cached result from docker-run-test_label-in-sha256-506f4a834ed365e58787feb88e0c5ef60e75c5975aae441e775cbba1cafcc88d
ci_1  | 2018-03-22 15:58.57 INF [datakit-ci] Record: status-myproject-ref-heads-master: runtests -> Run succeeded
ci_1  | 2018-03-22 15:58.57 INF [datakit-ci] Flush: Set myproject/ref/heads/master:runtests to Run succeeded
ci_1  | 2018-03-22 15:58.57 INF [datakit-ci] Loaded cached result from docker-run-test_label-in-sha256-506f4a834ed365e58787feb88e0c5ef60e75c5975aae441e775cbba1cafcc88d

This suggests that the branch names are in the cache. Notice, however, that there are two Loaded cached result from docker-run-test_label... entries.
Could those two identical entries somehow explain the problem? Or is it normal behavior?
For the record, here are the logs for rebuilding:
ci_1  | 2018-03-22 16:00.37 INF [datakit-ci] Running "docker" "run" "--rm" "--network" "host" "sha256:506f4a834ed365e58787feb88e0c5ef60e75c5975aae441e775cbba1cafcc88d"
ci_1  | 2018-03-22 16:00.37 INF [datakit-ci] Record: status-myproject-ref-heads-master: runtests -> Docker run test_label
ci_1  | 2018-03-22 16:00.37 INF [datakit-ci] Flush: Set myproject/ref/heads/master:runtests to Docker run test_label
ci_1  | 2018-03-22 16:00.38 INF [datakit-ci] Record: status-myproject-ref-heads-master: runtests -> Can't create new live log on branch "docker-run-test_label-in-sha256-506f4a834ed365e58787feb88e0c5ef60e75c5975aae441e775cbba1cafcc88d"; one is already active!
ci_1  | === Docker run test_label
ci_1  | [2018-03-22 16:00.37] Starting...
ci_1  | [2018-03-22 16:00.37] Running "docker" "run" "--rm" "--network" "host" "sha256:506f4a834ed365e58787feb88e0c5ef60e75c5975aae441e775cbba1cafcc88d"
ci_1  |
ci_1  | 2018-03-22 16:00.38 INF [datakit-ci] Flush: Set myproject/ref/heads/master:runtests to Can't create new live log on branch "docker-run-test_label-in-sha256-506f4a834ed365e58787feb88e0c5ef60e75c5975aae441e775cbba1cafcc88d"; one is already active!
ci_1  | === Docker run test_label
ci_1  | [2018-03-22 16:00.37] Starting...
ci_1  | [2018-03-22 16:00.37] Running "docker" "run" "--rm" "--network" "host" "sha256:506f4a834ed365e58787feb88e0c5ef60e75c5975aae441e775cbba1cafcc88d"

It certainly looks like you've got two instances of the cache. I can't think of any other reason why it would load the same result twice.
Also, the Can't create new live log would cause the cache getting that to abort the operation, but the next line Docker run test_label suggests that it did indeed create the log (and is now logging to it). I don't see how that could happen with a single cache instance.

Where do you call Docker.create? Is it nested inside a function, perhaps?

For now, my code has exactly the same structure as self-ci:
module Dockerfile = struct
  (* [v ~timeout file] is a caching builder for [file]. *)
  let v ?label ~timeout file =
    let label = label |> Utils.default file in
    Docker.create ~logs ~pool ~timeout ~label file

  let test = v ~timeout:(30. *. minute) "Dockerfile.test"
end

module Tests = struct
  open Term.Infix

  let images src =
    let build ?from dockerfile =
      match from with
      | None -> src >>= Docker.build dockerfile ?from:None
      | Some from ->
        Term.without_logs (Term.pair src from) >>= fun (src, from) ->
        Docker.build dockerfile ~from src
    in
    object(_self)
      method test = build Dockerfile.test
    end

  (* [datakit repo target] is the set of tests to run on [target]. *)
  let datakit repo = function
    | `Ref (_, ["heads"; "gh-pages"]) -> []
    | target ->
      let src = Git.fetch_head repo target in
      let images = images src in
      [
        "runtests",  images#test >>= fun img ->
                     (Docker.run (Docker.command ~logs ~pool ~timeout:(30. *. minute) ~label:"test_label" ~network:"host" []) img)
                     >|= fun () -> "Run succeeded"
      ]
end

It seems to me that Docker.create, Docker.build, and Docker.run are all called exactly once. Any ideas?

Docker.command is being called at least every time a new image is produced, and it creates a new cache. You should create that once, at the top level.

Yep, that solves it, thanks @talex5! I didn't realize Docker.command also creates a new cache.
In case anyone struggles with the same issues, here's an example building and running one docker container:
module Tests = struct
  open Term.Infix

  let my_tests target =
    let timeout = (30. *. minute) in

    let repo = Git.v ~logs ~remote:"/mnt/my_project_remote" "/data/repos/my_project" in
    let src = Git.fetch_head repo target in
    let dockerfile = Docker.create ~logs ~pool ~timeout ~label:"tests" "Dockerfile" in
    let image = src >>= Docker.build ?from:None dockerfile in
    let command = Docker.command ~logs ~pool ~timeout ~label:"run" ~network:"host" [] in

    [
      "my_tests", image
                  >>= fun img -> (Docker.run command img)
                  >|= fun () -> "Run succeeded";
    ]
end

let projects = [
  Config.project ~id:"my/myproject" Tests.my_tests
]

I'm not sure that's right either. It will create (at least) a new cache for each target, which isn't what you want.


Programmatic configuration?

One of my projects is too dynamic to configure everything in the web.config. Is there no way to configure NWebsec programmatically?

To clarify, I know that some configuration can be done at OWIN startup, but I have configuration that needs to change outside of that event.

If you are using MVC, use the NWebsec.Mvc NuGet package. It contains a bunch of filters, which you can add to the global MVC filters collection or to individual controllers or actions. Find out more here.

Yes, the MVC attributes might be helpful. Other than that, it's not currently possible to change/supply configuration programmatically.
NWebsec has been moving in a direction where this would be easier to support in the future. If you have a scenario where this would be helpful I'd appreciate some more details. I might add the possibility in a future release, if there are good reasons.

From what I can tell, your core redirect validation logic happens in RedirectValidator. However, the AllowedUris are stored in RedirectValidationConfiguration, RedirectValidationConfigurationElement, and RedirectValidationOptions. Effectively, the OWIN, attribute, and config-based data stores are all separate, maintaining their own list of AllowedUris.
What if AllowedUris (and all of NWebSec's configuration for that matter) were stored in some static context that could be accessed from anywhere, and shared from everywhere? That would, for example, allow initial configuration from OWIN, but later allow something like:
NWebSec.Context.Current.RedirectValidationOptions.AllowedUrls.Add("http://someurl");
If you want to talk about how you're thinking about proceeding, I can whip something up in my fork..

Yes, the web.config and OWIN config are two separate config stores (there's no MVC attribute).
I'll probably have to do some more restructuring of NWebsec to support ASP.NET vnext (dnx), and I think it would be a good idea if I kept this issue in mind while doing that. I'm pretty sure it is simpler to first do the work related to vnext, and then consider dynamic config (not the other way around).
I have to admit that I'm not completely sold on the idea yet, as it would increase the complexity of NWebsec. I still need a good reason to add it. Perhaps you could explain your scenario in some more detail? If you're not comfortable sharing it here, perhaps you could give me a ping at nwebsec at nwebsec dot com

Where do you anticipate the complexity exists?
I'm sure that centralized, configurable configuration will add a little complexity, but I don't think it's actually complicated. In my opinion, it's better to have complexity than the redundancy you have currently. Having two config stores is also confusing to a developer who is trying to use NWebSec for the first time. First question I asked myself is, "Why?".  Also, I'm not the first to ask: http://nwebsec.codeplex.com/discussions/543272 :)
And if you use a static configuration context, it won't have any impact on ASP.NET 5. That much works the same.
In my situation, we have a database table of approved URLs... basically a key/value pair. We need to load this into ApprovedUris at startup... But since that list can change at runtime, we need to be able to modify ApprovedUris.
Hope that helps. I'm happy to keep discussing this with you until an agreement is made. Better to make sure we're all on the same page before any code is written. :)

Happy Monday, everyone! I just popped back in here, and it still doesn't appear to be possible to configure the redirect validation URLs at run-time.
Is that something I can help with?

NWebsec currently validates all config at startup, which is straightforward. Error handling is also straight forward, simply throw an exception. Dynamic configuration means that NWebsec also needs dynamic error handling, and needs to take care to not introduce synchronization issues when the configuration changes. That would introduce quite a bit of new complexity.
I do understand that you have a scenario where this functionality would be convenient, but I'm not sold on the idea, and I'm not sure that this is something I'd want to maintain.
Right now I'm wrapping up a new release, and when that's done I'll get started on ASP.NET 5 support. After that, there are a few more features on the horizon too. I'll have to prioritize those over this. We can leave this issue hanging if you want, and I'll have another look at it when the calendar clears up.

Thanks for taking time to respond, @klings. I especially appreciate you being patient with me while discussing a potential solution.
I like simplicity as much as the next developer, and I also appreciate your tendency to maintain that simplicity.
As you ponder if/how to complete this request, here are a few more things I've been thinking about:

Every change to any part of NWebsec's configuration requires a restart of the server for those changes to take effect. Many of the most important configuration options in NWebsec are of the type that necessitate repeated, frequent changes, especially at first when you're trying to get everything configured correctly (CSP is probably the biggest culprit, but redirect validation isn't far behind).
In my mind, it is not necessary for you to maintain any sort of component that requires careful consideration of synchronization issues. I imagine NWebSec supporting a modular "data store"/provider model where in different implementations can be injected at startup. If someone wants to use the web.config for their data store, inject a web config data store into NWebsec's configuration. The OWIN configuration might be changed to simply construct some sort of object data store behind the scenes. In both of those cases, you wouldn't have to worry about synchronization issues. However, if I want to inject a database-based data store, and if I want to take on the onus of dealing with synchronization issues, that's for me to deal with. In any case, NWebsec would simply rely on the data stores to return an object model to work with.
Validation would merely have to be moved from "load time" to "access time" validation. Any time NWebsec needs to access configuration, it requests it from the data store and validates it there. I understand that requires an extra resource load performing validation on every access, so I'm interested to know what you think about that.
When a validation error occurs, you still just throw an exception as you currently do.

I hope that makes sense.
It just occurred to me that your proposed/potential solution likely involves building some sort of thread-safe, observable object/collection to handle validation as the object model is modified... and yeah, that does seem complicated. Though I'm sure there's a good example of a thread-safe observable object/collection somewhere out there on the internet to handle the bulk of that workload.
No rush to respond.. Just wanted to continue to put my thoughts into writing... I enjoy design talks like this and I assure you I'm not trying to argue.


[BUG] slash commands

slash commands visible in all channels even the bot can not see and also work

This is intended, as discord does not allow limiting thoose commands to specific channels


PublishSet's OnNext isn't getting called

Hi, I used your approach for testing viewModels,
But when I provide mocking apiclient
onShowError doesn't getting called for onNext
while it works fine with original api. Don't know what is wrong. Can you please help me ?

Hi bhatti-wagas,
Do you have the code available somewhere so that I can see it? I think I'll be able to spot if the setup for the test case is missing something. I'd also like to see the mocked network request for the call.

HI JussiSuojanen,
I am following you code base, but insteed of using Alamofire for network call I am using NSURLSession.
But its failing the PATCH, request for updating as I am getting an 400 exception in a result.
let param = ["firstname" : "Alizee",
"lastname": "Laka",
"phonenumber": "9876544343"]
    var request = URLRequest(url: url)
    request.httpMethod = "PATCH"
    request.timeoutInterval = 60
    request.httpBody  = try! JSONSerialization.data(withJSONObject: param, options: [])
    URLSession.shared.dataTask(with: request){(data, response, error) in

        guard let statusCode = response?.getStatusCode() else{
            completion(.Failure(.InvalidStatusCode))
            return
        }
        print(statusCode)

    }.resume()

//URLResponse Extension
extension URLResponse {
func getStatusCode() -> Int? {
if let httpResponse = self as? HTTPURLResponse {
return httpResponse.statusCode
}
return nil
}
}


Handle Categoricals

We should think of a way to handle categoricals as inputs for the dataframe. Only converting them to int (cat.codes) may not be enough because there are certain operators that don't make sense (sum, sma). A better option would be to add a dtype for categorical and handle the type separately.

Moved to roadmap


Fix/augment version output

This fixes and augments the output of the --version CLI flag to properly include the commit date, and the Go version and arch information.
Before:
friendly-stripe-sync version 0.1.3-SNAPSHOT-236b3de linux (date unknown) 236b3de071511469c2a7f201180fa5b927a46fe6

After:
friendly-stripe-sync version 0.1.3-SNAPSHOT-0edf307 linux/amd64 go1.21.1 (2023-10-04T08:46:49Z) 0edf3073bde5df29237ea91d6c624fcf9993d8e9

Thank you!


[NG] add a golden file test

This is a new type of test that captures our public API as part of our build process and tests against the previous version to check if any changes were found. This will help us identify when changes in our public api happen.

@youdz please double check changes


Attempt to share fails with no data although synchronized and claimed - 1.5.8 - defect

Starting a new tag cannot claim, no data however export shows 25 data points.

Now tag is claimed and reports synchro successfully 5 minutets ago, but cannot share (PS synchro successful message needs to stay present longer)

App should check for data before user enters email address.

user is<EMAIL_ADDRESS>

It is mandatory to have measurements in Network to be able to share sensor and only Ruuvi Gateway can send data to Network. Agree, we should add check before trying to share.

Sami is working on improving sharing api. We'll be able to improve UX when it's done

@markoaamunkajo Many words in description but I only did this: App should check for data before user enters email address
Sami implemented new API for shared sensors and now when I open this dialog I already know if I can share sensor or not (in case if sensor has no data in Network). I can disable send button in this scenario, but it would be also nice to tell user why it's disabled.
Lauri: Only sensors within range of your Ruuvi Gateway can be shared. If you don't have one, get it on ruuvi.com

QA passed


[OKD][4.6][IPI][AWS] Bootstrap failed to complete: failed to wait for bootstrapping to complete: timed out waiting for the condition

Hello,
I am installing openshift on AWS but since yesterday I received the error message below:
INFO Waiting up to 30m0s for bootstrapping to complete...
E0104 12:01:10.600316  103273 reflector.go:307] k8s.io/client-go/tools/watch/informerwatcher.go:146: Failed to watch *v1.ConfigMap: Get "https://api.4.ocp.omnia.ma:6443/api/v1/namespaces/kube-system/configmaps?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dbootstrap&resourceVersion=15730&timeoutSeconds=536&watch=true": dial tcp <IP_ADDRESS>:6443: connect: connection refused
E0104 12:01:21.924276  103273 reflector.go:307] k8s.io/client-go/tools/watch/informerwatcher.go:146: Failed to watch *v1.ConfigMap: Get "https://api.4.ocp.omnia.ma:6443/api/v1/namespaces/kube-system/configmaps?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dbootstrap&resourceVersion=15730&timeoutSeconds=564&watch=true": net/http: TLS handshake timeout
E0104 12:01:23.440707  103273 reflector.go:153] k8s.io/client-go/tools/watch/informerwatcher.go:146: Failed to list *v1.ConfigMap: Get "https://api.4.ocp.omnia.ma:6443/api/v1/namespaces/kube-system/configmaps?fieldSelector=metadata.name%3Dbootstrap&limit=500&resourceVersion=0": dial tcp <IP_ADDRESS>:6443: connect: connection refused
ERROR Cluster operator authentication Degraded is True with IngressStateEndpoints_MissingSubsets::OAuthServiceCheckEndpointAccessibleController_SyncError::OAuthServiceEndpointsCheckEndpointAccessibleController_SyncError: OAuthServiceEndpointsCheckEndpointAccessibleControllerDegraded: oauth service endpoints are not ready
OAuthServiceCheckEndpointAccessibleControllerDegraded: Get "https://<IP_ADDRESS>:443/healthz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
IngressStateEndpointsDegraded: No subsets found for the endpoints of oauth-server
INFO Cluster operator authentication Progressing is Unknown with NoData:
INFO Cluster operator authentication Available is False with OAuthServiceCheckEndpointAccessibleController_EndpointUnavailable::OAuthServiceEndpointsCheckEndpointAccessibleController_EndpointUnavailable: OAuthServiceEndpointsCheckEndpointAccessibleControllerAvailable: Failed to get oauth-openshift enpoints
OAuthServiceCheckEndpointAccessibleControllerAvailable: Get "https://<IP_ADDRESS>:443/healthz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
ERROR Cluster operator etcd Degraded is True with EnvVarController_Error::InstallerController_Error::RevisionController_ContentCreationError::ScriptController_Error::StaticPods_Error: StaticPodsDegraded: pods "etcd-ip-10-0-148-77.eu-west-3.compute.internal" not found
StaticPodsDegraded: pods "etcd-ip-10-0-191-195.eu-west-3.compute.internal" not found
InstallerControllerDegraded: missing required resources: [configmaps: etcd-scripts,restore-etcd-pod, configmaps: config-1,etcd-metrics-proxy-client-ca-1,etcd-metrics-proxy-serving-ca-1,etcd-peer-client-ca-1,etcd-pod-1,etcd-serving-ca-1, secrets: etcd-all-peer-1,etcd-all-serving-1,etcd-all-serving-metrics-1]
EnvVarControllerDegraded: at least three nodes are required to have a valid configuration
ScriptControllerDegraded: "configmap/etcd-pod": missing env var values
RevisionControllerDegraded: configmaps "etcd-pod" not found
INFO Cluster operator etcd Progressing is True with NodeInstaller: NodeInstallerProgressing: 2 nodes are at revision 0; 0 nodes have achieved new revision 1
INFO Cluster operator etcd Available is False with StaticPods_ZeroNodesActive: StaticPodsAvailable: 0 nodes are active; 2 nodes are at revision 0; 0 nodes have achieved new revision 1
INFO Cluster operator ingress Available is False with IngressUnavailable: Not all ingress controllers are available.
INFO Cluster operator ingress Progressing is True with Reconciling: Not all ingress controllers are available.
ERROR Cluster operator ingress Degraded is True with IngressControllersDegraded: Some ingresscontrollers are degraded: ingresscontroller "default" is degraded: DegradedConditions: One or more other status conditions indicate a degraded state: PodsScheduled=False (PodsNotScheduled: Some pods are not scheduled: Pod "router-default-74677cc985-jgwpq" cannot be scheduled: 0/3 nodes are available: 1 node(s) didn't match pod affinity/anti-affinity, 1 node(s) didn't match pod anti-affinity rules, 2 node(s) didn't match node selector. Make sure you have sufficient worker nodes.), DeploymentAvailable=False (DeploymentUnavailable: The deployment has Available status condition set to False (reason: MinimumReplicasUnavailable) with message: Deployment does not have minimum availability.), DeploymentReplicasMinAvailable=False (DeploymentMinimumReplicasNotMet: 0/2 of replicas are available, max unavailable is 1)
ERROR Cluster operator insights Degraded is True with PeriodicGatherFailed: Source config could not be retrieved: certificatesigningrequests.certificates.k8s.io is forbidden: User "system:serviceaccount:openshift-insights:gather" cannot list resource "certificatesigningrequests" in API group "certificates.k8s.io" at the cluster scope: RBAC: clusterrole.rbac.authorization.k8s.io "cluster-reader" not found, configmaps is forbidden: User "system:serviceaccount:openshift-insights:gather" cannot list resource "configmaps" in API group "" in the namespace "openshift-config": RBAC: clusterrole.rbac.authorization.k8s.io "cluster-reader" not found, customresourcedefinitions.apiextensions.k8s.io "volumesnapshots.snapshot.storage.k8s.io" is forbidden: User "system:serviceaccount:openshift-insights:gather" cannot get resource "customresourcedefinitions" in API group "apiextensions.k8s.io" at the cluster scope: RBAC: clusterrole.rbac.authorization.k8s.io "cluster-reader" not found, hostsubnets.network.openshift.io is forbidden: User "system:serviceaccount:openshift-insights:gather" cannot list resource "hostsubnets" in API group "network.openshift.io" at the cluster scope: RBAC: clusterrole.rbac.authorization.k8s.io "cluster-reader" not found, pods is forbidden: User "system:serviceaccount:openshift-insights:gather" cannot list resource "pods" in API group "" at the cluster scope: RBAC: clusterrole.rbac.authorization.k8s.io "cluster-reader" not found
INFO Cluster operator insights Disabled is False with AsExpected:
ERROR Cluster operator kube-apiserver Degraded is True with NodeInstaller_InstallerPodFailed::StaticPods_Error: NodeInstallerDegraded: 1 nodes are failing on revision 2:
NodeInstallerDegraded: ; 1 nodes are failing on revision 3:
NodeInstallerDegraded: static pod of revision 3 has been installed, but is not ready while new revision 4 is pending
StaticPodsDegraded: pod/kube-apiserver-ip-10-0-148-77.eu-west-3.compute.internal container "kube-apiserver" is not ready: CrashLoopBackOff: back-off 5m0s restarting failed container=kube-apiserver pod=kube-apiserver-ip-10-0-148-77.eu-west-3.compute.internal_openshift-kube-apiserver(2f5cafad-47ff-4125-82d1-fabcf583d3f8)
StaticPodsDegraded: pod/kube-apiserver-ip-10-0-148-77.eu-west-3.compute.internal container "kube-apiserver" is waiting: CrashLoopBackOff: back-off 5m0s restarting failed container=kube-apiserver pod=kube-apiserver-ip-10-0-148-77.eu-west-3.compute.internal_openshift-kube-apiserver(2f5cafad-47ff-4125-82d1-fabcf583d3f8)
StaticPodsDegraded: pod/kube-apiserver-ip-10-0-148-77.eu-west-3.compute.internal container "kube-apiserver-check-endpoints" is not ready: CrashLoopBackOff: back-off 2m40s restarting failed container=kube-apiserver-check-endpoints pod=kube-apiserver-ip-10-0-148-77.eu-west-3.compute.internal_openshift-kube-apiserver(2f5cafad-47ff-4125-82d1-fabcf583d3f8)
StaticPodsDegraded: pod/kube-apiserver-ip-10-0-148-77.eu-west-3.compute.internal container "kube-apiserver-check-endpoints" is waiting: CrashLoopBackOff: back-off 2m40s restarting failed container=kube-apiserver-check-endpoints pod=kube-apiserver-ip-10-0-148-77.eu-west-3.compute.internal_openshift-kube-apiserver(2f5cafad-47ff-4125-82d1-fabcf583d3f8)
StaticPodsDegraded: pod/kube-apiserver-ip-10-0-191-195.eu-west-3.compute.internal container "kube-apiserver" is not ready: CrashLoopBackOff: back-off 5m0s restarting failed container=kube-apiserver pod=kube-apiserver-ip-10-0-191-195.eu-west-3.compute.internal_openshift-kube-apiserver(5a1ea63c-a4aa-4873-941f-ba8b34d2f6f6)
StaticPodsDegraded: pod/kube-apiserver-ip-10-0-191-195.eu-west-3.compute.internal container "kube-apiserver" is waiting: CrashLoopBackOff: back-off 5m0s restarting failed container=kube-apiserver pod=kube-apiserver-ip-10-0-191-195.eu-west-3.compute.internal_openshift-kube-apiserver(5a1ea63c-a4aa-4873-941f-ba8b34d2f6f6)
StaticPodsDegraded: pod/kube-apiserver-ip-10-0-191-195.eu-west-3.compute.internal container "kube-apiserver-check-endpoints" is not ready: CrashLoopBackOff: back-off 5m0s restarting failed container=kube-apiserver-check-endpoints pod=kube-apiserver-ip-10-0-191-195.eu-west-3.compute.internal_openshift-kube-apiserver(5a1ea63c-a4aa-4873-941f-ba8b34d2f6f6)
StaticPodsDegraded: pod/kube-apiserver-ip-10-0-191-195.eu-west-3.compute.internal container "kube-apiserver-check-endpoints" is waiting: CrashLoopBackOff: back-off 5m0s restarting failed container=kube-apiserver-check-endpoints pod=kube-apiserver-ip-10-0-191-195.eu-west-3.compute.internal_openshift-kube-apiserver(5a1ea63c-a4aa-4873-941f-ba8b34d2f6f6)
INFO Cluster operator kube-apiserver Progressing is True with NodeInstaller: NodeInstallerProgressing: 2 nodes are at revision 0; 0 nodes have achieved new revision 4
INFO Cluster operator kube-apiserver Available is False with StaticPods_ZeroNodesActive: StaticPodsAvailable: 0 nodes are active; 2 nodes are at revision 0; 0 nodes have achieved new revision 4
INFO Cluster operator monitoring Available is False with :
ERROR Cluster operator monitoring Degraded is True with UpdatingconfigurationsharingFailed: Failed to rollout the stack. Error: running task Updating configuration sharing failed: failed to retrieve Prometheus host: getting Route object failed: the server could not find the requested resource (get routes.route.openshift.io prometheus-k8s)
INFO Cluster operator openshift-apiserver Available is False with APIServices_PreconditionNotReady: APIServicesAvailable: PreconditionNotReady
INFO Cluster operator operator-lifecycle-manager-packageserver Available is False with :
INFO Cluster operator operator-lifecycle-manager-packageserver Progressing is True with : Working toward 0.16.1
DEBUG Fetching Bootstrap SSH Key Pair...
DEBUG Loading Bootstrap SSH Key Pair...
DEBUG Using Bootstrap SSH Key Pair loaded from state file
DEBUG Reusing previously-fetched Bootstrap SSH Key Pair
DEBUG Fetching Install Config...
DEBUG Loading Install Config...
DEBUG   Loading SSH Key...
DEBUG   Loading Base Domain...
DEBUG     Loading Platform...
DEBUG   Loading Cluster Name...
DEBUG     Loading Base Domain...
DEBUG     Loading Platform...
DEBUG   Loading Pull Secret...
DEBUG   Loading Platform...
DEBUG Using Install Config loaded from state file
DEBUG Reusing previously-fetched Install Config
INFO Pulling debug logs from the bootstrap machine
DEBUG Using SSH_AUTH_SOCK /tmp/ssh-ERgILePJeHbf/agent.25417 to connect to an existing agent
ERROR Attempted to gather debug logs after installation failure: failed to create SSH client: failed to use pre-existing agent, make sure the appropriate keys exist in the agent for authentication: ssh: handshake failed: ssh: unable to authenticate, attempted methods [publickey none], no supported methods remain
FATAL Bootstrap failed to complete: failed to wait for bootstrapping to complete: timed out waiting for the condition

However, the key is already loaded !
So, the openshift-install version is :
./openshift-install 4.6.0-0.okd-2020-12-12-135354
built from commit 379b3f2a13d7ccada08f133394e4588b8fc67067
release image quay.io/openshift/okd@sha256:01948f4c6bdd85cdd212eb40d96527a53d6382c4489d7da57522864178620a

My best regards,
bootstrap.log
master-0.log
master-1.log
worker-0.log

However, the key is already loaded !

Are you using RSA keys? Fedora no longer accepts them

However, the key is already loaded !

Are you using RSA keys? Fedora no longer accepts them

Are you using RSA keys? Fedora no longer accepts them

It's about RSA keys < 2048 and The size of the key - which i'm using - is 3072 !
LEGACY
 MACs: All HMAC with SHA1 or better + all modern MACs (poly1305 etc)
 Curves: all prime >= 255 bits (including bernstein curves)
 Signature algorithms: SHA-1 hash or better (not RIPEMD)
 Ciphers: all available > 112-bit key, >= 128-bit block (no rc4, but with 3DES)
 key exchange: ECDHE, RSA, DHE
 DH params size: >=1023
 RSA params size: >=1023
 TLS protocols: TLS >= 1.0

---
DEFAULT
 MACs: All HMAC with SHA1 or better + all modern MACs (poly1305 etc)
 Curves: all prime >= 255 bits (including bernstein curves)
 Signature algorithms: with SHA-256 hash or better (not DSA)
 Ciphers: >= 128-bit key, >= 128-bit block (aes, chacha20, including aes-cbc)
 key exchange: ECDHE, RSA, DHE
 DH params size: >= 2048
 RSA params size: >= 2048
 TLS protocols: TLS >= 1.2

---
FUTURE
 MACs: All HMAC with SHA256 or better + all modern MACs (poly1305 etc)
 Curves: all prime >= 255 bits (including bernstein curves)
 Signature algorithms: SHA-256 hash or better (not DSA)
 Ciphers: >= 256-bit key, >= 128-bit block, only Authenticated Encryption (AE) ciphers
 key exchange: ECDHE, DHE
 DH params size: >= 3072
 RSA params size: >= 3072
 TLS protocols: TLS >= 1.2

So that's not the root cause.
Thanks @vrutkovs

Are you using RSA keys? Fedora no longer accepts them

It's about RSA keys < 2048 and The size of the key - which i'm using - is 3072 !
LEGACY
 MACs: All HMAC with SHA1 or better + all modern MACs (poly1305 etc)
 Curves: all prime >= 255 bits (including bernstein curves)
 Signature algorithms: SHA-1 hash or better (not RIPEMD)
 Ciphers: all available > 112-bit key, >= 128-bit block (no rc4, but with 3DES)
 key exchange: ECDHE, RSA, DHE
 DH params size: >=1023
 RSA params size: >=1023
 TLS protocols: TLS >= 1.0

---
DEFAULT
 MACs: All HMAC with SHA1 or better + all modern MACs (poly1305 etc)
 Curves: all prime >= 255 bits (including bernstein curves)
 Signature algorithms: with SHA-256 hash or better (not DSA)
 Ciphers: >= 128-bit key, >= 128-bit block (aes, chacha20, including aes-cbc)
 key exchange: ECDHE, RSA, DHE
 DH params size: >= 2048
 RSA params size: >= 2048
 TLS protocols: TLS >= 1.2

---
FUTURE
 MACs: All HMAC with SHA256 or better + all modern MACs (poly1305 etc)
 Curves: all prime >= 255 bits (including bernstein curves)
 Signature algorithms: SHA-256 hash or better (not DSA)
 Ciphers: >= 256-bit key, >= 128-bit block, only Authenticated Encryption (AE) ciphers
 key exchange: ECDHE, DHE
 DH params size: >= 3072
 RSA params size: >= 3072
 TLS protocols: TLS >= 1.2

So that's not the root cause.
Thanks @vrutkovs

Is this still an issue on latest OKD 4.6? Please attach or link to a log bundle


Fetch failed while updating plugin or theme

Hello,
everytime i try to update a plugin or theme through the grav.admin webinterface i get an error. It says something like "{"status":"success","dependencies":[]}".

is there a fix for this issue?

Are you able to update from the terminal and not admin?


CI: Upgrade macos runner from deprecated 10.15

GitHub deprecated macOS 10.15 runners; this updates to 11 but retains the build target of 10.15, so everything should still work as before.

CI madness: Windows Conda tests started failing when the only thing we changed was a macOS specific setting:
https://github.com/geopandas/pyogrio/actions/runs/3107179475/jobs/5035196379#step:5:91
Looks like the linker is not finding GDAL on Windows, even though it is exactly the same version of GDAL as for a preceding successful version of these tests: https://github.com/geopandas/pyogrio/actions/runs/3100662293/jobs/5021184008

Possible suspect: CMake builds just landed for GDAL in conda-forge: https://github.com/conda-forge/gdal-feedstock/pull/629
Perhaps the library is in a different location than expected or different filename.

Yes, just wanted to mention the same about GDAL cmake landed on conda-forge.
Looking at this comment: https://github.com/conda-forge/gdal-feedstock/pull/629#issuecomment-1251165438, it lists the differences in files being installed before/after, and indeed for Windows, I see this part:
-Library/lib/gdal_i.lib
+Library/lib/cmake/gdal/GDAL-targets-release.cmake
+Library/lib/cmake/gdal/GDAL-targets.cmake
+Library/lib/cmake/gdal/GDALConfig.cmake
+Library/lib/cmake/gdal/GDALConfigVersion.cmake
+Library/lib/gdal.lib
+Library/lib/gdalplugins/drivers.ini
+Library/lib/pkgconfig/gdal.pc

so gdal_i.lib now being gdal.lib.
That will require an update in our setup.py, since we currently hardcode that:
https://github.com/geopandas/pyogrio/blob/b60dbd5269bf560c9e650831372194d583496cd4/setup.py#L65
(not sure if we can just list both, or if there is some way to detect which of the two it should be)

Apparently we can't just list both, it fails on whichever one is not present.  I added a search for it, which appears to work for both the older and newer libgdal.
Should we comment out / remove the specific test for libgdal3.5.1 (which uses gdal_i.lib) from our conda-forge CI tests?  Now that we know that detection of gdal_i.lib appears to be working properly, I don't know that there is much value in retaining it - or at least running it all the time.

(release failures are unrelated, will work on those in a bit in a different PR)

Should we comment out / remove the specific test for libgdal3.5.1 (which uses gdal_i.lib) from our conda-forge CI tests? Now that we know that detection of gdal_i.lib appears to be working properly, I don't know that there is much value in retaining it - or at least running it all the time.

We could also pin gdal to an older version in the environment-minimal.yml, to not increase the number of builds?

(release failures are unrelated, will work on those in a bit in a different PR)

Are those related to the wheels not having GEOS enabled?

We could also pin gdal to an older version in the environment-minimal.yml

I think we'd want this environment to be the same versions as environment.yml.
It's not a problem to keep the CI test for libgdal 3.5.1 on Windows in place, these aren't taking a long time.

Are those related to the wheels not having GEOS enabled?

Yes, that appears to be it

I think we'd want this environment to be the same versions as environment.yml.

Is there a reason to want to have the same gdal version in the different env files?

In the meantime, those new conda-forge packages have been removed. But I think it would be good to already merge this fix anyway, so that if it changes again in the future (probably the migration will be done with the next gdal release).

Is there a reason to want to have the same gdal version in the different env files?

Just to control the things that vary between the tests; we don't have to, it just makes it easier to determine that the reason something broke was related to minimal dependencies rather than also the version of GDAL.


Improved Rust Codebase

This PR includes consistent method naming, usage of Turbofish for default values
No functional changes have been made
Also I have revised the code thoroughly to ensure there are no errors

Thanks but this doesn't look like an improvement to me.

I have added comments to explain complex logic, also I ensured that errors are handled appropriately
Lastly I broke down larger functions into smaller -> more modular ones


Import own fbx file to generate road?

Hi all, I am new to Carla and want to create a environment based on my city.
I imported my .fbx file into CarlaUE4 project as new roads, but then carla client didn't work.
It seems that the CarlaMapGenerator is a must to run carla client? If so, how can I
create my own roads rather than randomly generated roads?
Thanks!

Hi @yangzuyuanhao,
It is possible to use your own roads without the CarlaMapGenerator, but you'll get the annoying message Controller doesn't have a road map! (and of course the autopilot won't work). As a hack to get rid of this message you can add a CarlaMapGenerator somewhere far where is not visible, it will create the road map so the controllers are happy.
Now if you want the autopilot to work (depending on how complex is your road layout), you can create way-points with our RoutePlanner.

HI @nsubiron ,
Thanks for your help! I tried your suggestions by moving the  carla generated map far away.
However, the controller works only when the playerstart is outside of my own-created-road. There seems to be a clear boundary. Once I move the playerstart into my own city range, the controller fails
immediately.

@nsubiron
Sorry for confusion, it is not autopilot.
Error happens after I start the server (clicked the play button in UE4), with error message:
PIE: Error: Blueprint Runtime Error: Accessed None trying to read property CallFunc_GetPlayerPawn_ReturnValue from function: 'ExecuteUbergraph_Weather' from node: AttachToComponent in graph: EventGraph in object: Weather with description: Accessed None trying to read property CallFunc_GetPlayerPawn_ReturnValue

Do you have "Carla Game Mode" selected as game mode in the project settings? Can you check if inside it it has the default pawn set?

Hi @nsubiron, yes, the project settings are good.
By the way, the error won't happen if I drop my playerstart outside my own-created-road. It makes me
fell confused.

Uhm I'm confused too. Can it be that there is some collider near your player start so the vehicle fails to spawn because collision?

Hi @nsubiron , pretty sure no objects near my playerstart. Actually, anywhere inside my own-created-road-range would reproduce that error...

@TheNihilisticRobot & @nsubiron,
Thanks guys, I changed my road's collision setting and it works!
Really appreciate your help!

Hello everyone,
I am interested in importing my own 3D model into CARLA for simulated images. Can you please provide me with a detailed guide or tutorial on how to do this? I would greatly appreciate any information you can provide.
Thank you.


Rename literal key to code

Currently, an inline monospaced phrased is styled using the literal category in the theme. However, a monospaced phrase is not necessarily literal, so this is misleading. The category should be renamed to code (or something more appropriate).
That means the existing code category will need to be renamed to something more appropriate as well, such as verbatim, code-block, or some other alternative.
We may need to remap the old keys for backwards compatibility.

What we came up with was to make it as explicit as possible by using "code" as the root word and qualifying it with "span" and "block" for the respective element types.

literal -> code span
code -> code block

The open question that remains is whether or not the category should include a separator or whether it should be a single term.

codespan or code-span
codeblock or code-block


Add a CI job to ensure that CHANGELOG is updating in a PR

Add a Ci job that would check that the CHANGELOG file has gotten updated with a given Pull Request.
A simple git diff between the feature branch and the target branch will be enough.
Blocked by:

https://github.com/John15321/rust-pip/issues/32

Personally, I think this is kind of a pain. There are tons of PRs that really don't need a changelog entry. Even if you relied on a maintainer adding some sort of a "skip news" label, that takes a while and causes CI to fail for little reason.
I think that it's enough to add it to the PR template and reviewers can check if the PR needs it.


Documentation on steps to do a stable ROS 2 distribution patch release

We should write a page that has all of this information, so the community knows what steps we take and the basic guidelines are there for future ROS Bosses.

We actually added this long ago, so closing this out.


Consider replacing ParseEnv with envconfig

This library parses environment variables automatically into a struct
https://github.com/kelseyhightower/envconfig

I already switched to this library on my branch: https://pkg.go.dev/github.com/codingconcepts/env
Any strong perference for the other one?

It turns out no. envconfig automatically populates the Env struct from the environment, but it wasn't as much of a win as I had hoped because you still need to do the validations. See PR #16


Infix #= doesn't print correctly

cc @Schmavery
id #= (Some 2)

Gets printed as
id #= Some 2

And throws Error: The constructor Some expects 1 argument(s),        but is applied here to 0 argument(s): ...

Not really; can't use the formatter though.

Look like I didn't manage to get this to be treated as having high enough precedence in the printer.

actually it is correct according to ocaml manual
f #= a b

parsed as
(f #= a) b

you have to write
f #= ( a b )

I think #= is not the best operator for variable assigntment, but I could not find another one without introducing ambigiuity, do you have any ideas

This parsing precedence is incredibly weird. It also does the "intuitive thing" in some cases, but counter-intuitive things in others. For example:
/* Cool */
let res = myFunction objOne##field objTwo##field;

/* Uhh, this is weird: This doesn't parse how you'd expect! */
myThing  #= someFunction argOne argTwo;
/* It's actually parsed as: */
(myThing  #= someFunction) argOne argTwo;

/* You would have to do this to get the effect you wanted: */
myThing  #= (someFunction argOne argTwo);

I recommended getting rid of this special unique snowflake precedence, and instead making anything function application identifier beginning with # (with length >= 2) be parsed just like any other infix. That means if you want to pass x##y to a function as an argument, you must include parens around it.


S3 - Remove double quotes on ETag after copy

Potential fix for #4551. Bug was introduced in #4535
The internal value of the etag-parameter should be the md5 representation of the content. Whenever someone calls the property key.etag, Moto will then add the required quotes around it.
The line etag=key.etag on copy would ensure that the internal value of the etag already had quotes. Calling the copied_key.etag property would add another set of quotes. (Presumably ad-infinitum, if you would copy the same object over and over...)
By not supplying the etag-parameter it will be recalculated, so this way we don't have to worry about removing/counting quotes.

Codecov Report

Merging #4561 (0917f49) into master (701465d) will increase coverage by 0.00%.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #4561   +/-   ##
=======================================
  Coverage   95.06%   95.06%
=======================================
  Files         515      515
  Lines       58712    58727   +15
=======================================
+ Hits        55816    55831   +15
  Misses       2896     2896

Flag
Coverage Δ

servertests
47.90% <ø> (-0.01%)
:arrow_down:

test_responses
32.39% <ø> (-0.01%)
:arrow_down:

unittests
94.97% <ø> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

moto/s3/models.py
94.49% <ø> (ø)

moto/dynamodb2/exceptions.py
100.00% <0.00%> (ø)

moto/dynamodb2/models/__init__.py
95.91% <0.00%> (+0.01%)
:arrow_up:

moto/iot/models.py
91.83% <0.00%> (+0.08%)
: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 701465d...0917f49. Read the comment docs.


[ARM] az bicep publish: Remove preview flag from --wish-source parameter of "az bicep publish"

Related command
az bicep publish
Description
Removed the is_preview=True flag from the --with-source argument
Testing Guide
N/A
History Notes

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

ARM

Friendly reminder, thanks!

@yonzhan Could you or someone please review this?  thanks!


Reporting a vulnerability

Hello!
I hope you are doing well!
We are a security research team. Our tool automatically detected a vulnerability in this repository. We want to disclose it responsibly.  GitHub has a feature called Private vulnerability reporting, which enables security research to privately disclose a vulnerability. Unfortunately, it is not enabled for this repository.
Can you enable it, so that we can report it?
Thanks in advance!
PS: you can read about how to enable private vulnerability reporting here: https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/configuring-private-vulnerability-reporting-for-a-repository

Hello @igibek 👋
Thank you for reaching out! Please follow the responsible disclosure process described here so we can appropriately deal with the issue on an organisational level.

@igibek, did you manage to raise a report through the describes process?
We will close this issue in ~2 weeks if there is no further activity.

closing as there was further interaction


ceph-defaults: fix ceph_uid fact on container deployments

Red Hat is now using tags[3,latest] for image rhceph/rhceph-3-rhel7. Because of this, the ceph_uid conditional passes for Debian when 'ceph_docker_image_tag: latest' on RH family deployments. Updating the conditional to ansible_os_family solves the problem.
Signed-off-by: Randy J. Martinez<EMAIL_ADDRESS>

@leseb I think we have talked about that few weeks ago we agreed that we shouldn't do that kind of introspection if I remember well?

Actually I think this is misleading, this will check the OS on the host while we want to know the OS inside the container.
@leseb ?

We have to do the introspection on the tag because we don't have the image yet. That's not the right approach, as @guits mentioned testing the OS you're running on won't work.
@utp887, I think you need to add a new task that has ceph_docker_image | search("rhceph") in its conditionnal so you will get 167 for ceph_uid.

@leseb @guits I see your points... I went ahead and checked what centos/fedora/ubuntu are tagging, and the original check wouldn't have matched, so lets work with the image names instead. See update.

@leseb This is working as expected for me now w/your suggested updates.

jenkins test luminous-ansible2.4-docker_cluster

@leseb it looks like the test failed because ceph/daemon & tag: latest was used.... Recommendations?

jenkins test luminous-ansible2.4-docker_cluster

jenkins test luminous-ansible2.4-docker_cluster


LazyTraceThreadPoolTaskScheduler.getScheduledThreadPoolExecutor() cause associated ScheduledThreadPoolExecutor shutdown

Last day I found that some @Scheduled method not run in my application. After looking up the problem, I found out that the thread pool was closed. Finally I find this is caused by Spring Cloud Sleuth 2.2.0.M3.
LazyTraceThreadPoolTaskScheduler.LazyTraceThreadPoolTaskScheduler() method return a new LazyTraceScheduledThreadPoolExecutor instance when executor is not a ScheduledThreadPoolExecutor instance as below show:
@Override
public ScheduledThreadPoolExecutor getScheduledThreadPoolExecutor()
		throws IllegalStateException {
	ScheduledThreadPoolExecutor executor = this.delegate
			.getScheduledThreadPoolExecutor();
	if (executor instanceof LazyTraceScheduledThreadPoolExecutor) {
		return executor;
	}
	return new LazyTraceScheduledThreadPoolExecutor(executor.getCorePoolSize(),
			executor.getThreadFactory(), executor.getRejectedExecutionHandler(),
			this.beanFactory, executor);
}

Be careful the new LazyTraceScheduledThreadPoolExecutor instance hold a reference of the executor object ('delegate' in LazyTraceScheduledThreadPoolExecutor class).
LazyTraceScheduledThreadPoolExecutor class override finalize() method to invoke delegate's finalize() method.
@Override
@Deprecated
public void finalize() {
	ReflectionUtils.invokeMethod(this.finalize, this.delegate);
}

When LazyTraceScheduledThreadPoolExecutor instance is no longer to use, finalize() method will be invoked and then the delegate's  finalize() method also be invoked. But delegate is a shared object and still in use.
So this problem occurs when the LazyTraceThreadPoolTaskScheduler.LazyTraceThreadPoolTaskScheduler() is called. Unfortunately this happens when use spring-websocket 5.2.0.

LazyTraceThreadPoolTaskScheduler.LazyTraceThreadPoolTaskScheduler() method return a new LazyTraceScheduledThreadPoolExecutor instance when executor is not a ScheduledThreadPoolExecutor instance as below show:

That's actually not true, cause the executor is of ScheduledThreadPoolExecutor type.
ScheduledThreadPoolExecutor executor = this.delegate.getScheduledThreadPoolExecutor();
Nonetheless this:

When LazyTraceScheduledThreadPoolExecutor instance is no longer to use, finalize() method will be invoked and then the delegate's finalize() method also be invoked. But delegate is a shared object and still in use.

is still true. Since it's a shared object we should not finalize it. I'll remove wrapping of that method.

I'm sorry. It's a type error.

LazyTraceThreadPoolTaskScheduler.LazyTraceThreadPoolTaskScheduler() method return a new LazyTraceScheduledThreadPoolExecutor instance when executor is not a ScheduledThreadPoolExecutor instance as below show:

ScheduledThreadPoolExecutor should be LazyTraceScheduledThreadPoolExecutor. I just want to describe the method details.

I checked your fix code and found that the bug still exists.
LazyTraceScheduledThreadPoolExecutor.finalize() after fix:
@Override
@Deprecated
public void finalize() {
	super.finalize();
}

super.finalize() actually java.util.concurrent.ThreadPoolExecutor.finalize() method that calls the shutdown() method next.
protected void finalize() {
    SecurityManager sm = System.getSecurityManager();
    if (sm == null || acc == null) {
        shutdown();
    } else {
        PrivilegedAction<Void> pa = () -> { shutdown(); return null; };
        AccessController.doPrivileged(pa, acc);
    }
}

Because LazyTraceScheduledThreadPoolExecutor class override shutdown() method
@Override
public void shutdown() {
    this.delegate.shutdown();
}

So, the call chain is: LazyTraceScheduledThreadPoolExecutor.finalize() -> ThreadPoolExecutor.finalize() -> LazyTraceScheduledThreadPoolExecutor.shutdown().
Finally ScheduledThreadPoolExecutor instance still shutdown.

Ah true, good point!

Can you file the pr against branch 2.1.x?

Of course, it's done.

You've got to sign the cla

done


Rework and extend exception slides

Add slides on exception guarantees, standard exceptions and further
resources
Split some slides with too much text and add examples.
Fixes: #162

Good work. I wonder at which point the course has too many details. slightly_smiling_face

These are not details :)


Add tests for issue #493 fixed by PR #495

Ensures no regressions of #493 are encountered when slicing multi-
codimensioned coarrays

Avg response time
coverage on master

Summary of changes
Add test from #493 fixed in PR #495
Rationale for changes
Show @neok-m4700 changes needed to cmake to include tests, and add additional tests
Additional info and certifications
This pull request (PR) is a:

[ ] Bug fix
[x] Feature addition
[ ] Other, Please describe:

I certify that

[x] I reviewed and followed the contributing guidelines, including
- Increasing test coverage for all feature-addition PRs
- Increasing test coverage for all bug-fix PRs for which there
does not already exist a related test that failed before the PR
- At least maintaining test coverage for all other PRs
- Ensuring that all tests pass when run locally
- Naming PR  to indicate work in progress (WIP) and to attach the PR
to the appropriate bug report or feature request issue
- White space (no trailing white space or white space errors may
be introduced)
- Commenting code where it is non-obvious and non-trivial
- Logically atomic, self consistent and coherent commits
- Commit message content
- Waiting 24 hours before self-approving the PR to give another
OpenCoarrays developer a chance to review my proposed code

Needs to be rebased onto PR #495

LGTM
self approving since this just adds an additional test.


initial kv namespace support

set your namespaces in wrangler.toml
attempt to create them upon publish
If they exist, don't worry about it

So, this doesn't address #92 yet, but what you can do is modify the generated metadata_wasm.json and it works.
Or at least, I think it does. Behold:
{
    "body_part": "script",
    "bindings": [
        {
            "name": "wasm",
            "type": "wasm_module",
            "part": "wasmprogram"
        },
        {
            "type": "kv_namespace",
            "name": "POSTS",
            "namespace_id": "4adb8dfbd1114152b526270b3cb2317c"
        }
    ]
}

When I wrangler publish my website, everything succeeds. It does create the namespace if it doesn't exist. But in the UI:

Nothing there! Preview says it doesn't work. However,

My website does actually work?

you can test this by publishing to a diff domain.... or give the script a new name and put it at a different route

that seems to make it not work

Okay, so an update: this only works if you modify your worker's worker/metadata_wasm.json. However, since we're mostly doing this to get docs upload working, rather than KV as a general feature, it's good to go.

With Webpack path there could be an automatic way for declaring KV-bindings (as described in my ESM Worker proposal).

Yep! That won't work for non-webpack stuff though, so we're still gonna need it in some capacity.


Unable to drag to LaunchBox

as in title...

I can't reproduce...

This is still the case. I can't reopen tho.

Yeah... it's an issue of the QL window being 'always-on-top'.
I tried a quick hack of changing the feel to 'normal' as soon as the user starts dragging an item. While that does work, the window will then stay 'normal', because QL isn't informed when the user drops the item somewhere outside the app.
Unsatisfactory...
Equally unsatisfactory work-around: open the Setup window before trying to d&d an item to e.g. Launchbox... :)

While the work-around works it's counter intuitive :)

My use case was to drop freshly compiled Haiku's Pulse to Terminal which didn't work.


Add mirror for broken data team website

The data team website seems to go down often based on KT Command Node's comments. Searching the issue I found a mirror website which is working https://datateamapp.azurewebsites.net/Encode
Credit to ArcFox03 for his post https://steamcommunity.com/sharedfiles/filedetails/?id=2614731381&searchtext=
This mirror works.

Thanks!


in-kind sponsor information

our in-kind sponsors should be acknowledged through logo display and mention

logo's received from So&So books and CAM

So&So and CAM info script for live mention needs to be written and made available

No expectation of ability to get logo's onto slides at this point, but will make available just in case.

Here is info:
https://drive.google.com/file/d/0B-aCFOXBPGwgTUZPek5ydVdyMnc/view?usp=sharing

Here is So&So logo: https://drive.google.com/file/d/0B-aCFOXBPGwgZXc0NnQxRTNtVWs/view?usp=sharing
Here is CAM logo:  https://drive.google.com/file/d/0B-aCFOXBPGwgeFZPLWhoaHZET00/view?usp=sharing


Do not generate TextAlignment extension if it's already generated by base type

Another suggested fix: #206
Alternative to https://github.com/CommunityToolkit/Maui.Markup/pull/205
(ONLY ONE of the PRs need to be merged)
Description of Change

Linked Issues

Fixes #182

PR Checklist

[ ] Has a linked Issue, and the Issue has been approved(bug) or Championed (feature/proposal)
[ ] Has tests (if omitted, state reason in description)
[ ] Has samples (if omitted, state reason in description)
[ ] Rebased on top of main at time of PR
[ ] Changes adhere to coding standard
[ ] Documentation created or updated: https://github.com/MicrosoftDocs/CommunityToolkit/pulls/XYZ

Additional information

We did the non-generic way before. I believe @brminnick added it. Brandon, can you give the context around that change? (if you was there)

@Youssef1313 here's some context around the usage of generics
https://github.com/CommunityToolkit/Maui.Markup/pull/150

Ok, I think we can go with this approach.


ID_CARD DATASET

Can you share id_card dataset?

Why you choose pts2 = np.float32([[0,0],[500,0],[0,300],[500,300]]). I think the real dimention of ID card is 53.98mm and 85.6mm, the scale calculate is 1.585 meanwhile 500/300 is 1.667


Client fails to compile in Mac M1

In file included from libs/crypto/sha3.c:22:
libs/crypto/byte_order.h:59:3: error: "Can't detect CPU architechture"
error "Can't detect CPU architechture"
^
1 error generated.

Download
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
In the installer menu, select "gcc."

No, I'm not going to install any random binaries.

Oh yeah, your binaries includes malware https://www.virustotal.com/gui/file/546c34c2782216278a8273d3c9d3a954a980c7c2c7be220914aefe446fe94fd8

Download
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Oh yeah, your binaries includes malware https://www.virustotal.com/gui/file/546c34c2782216278a8273d3c9d3a954a980c7c2c7be220914aefe446fe94fd8

My account was compromised in the middle of the night I apologize, I am doing my best right now to go through every thread and remove the comments and let people know not to click them or download them

lololol


Added 'full' radius option for perfect circle border

Added 'full' radius option for perfect circle border.
Changes to the rounded-tool.tsx file.

This is really cool. I expected it to be a circle though - skill issue on my part
How insane would it be to add a "circle" option as well?

This is really cool. I expected it to be a circle though - skill issue on my part
How insane would it be to add a "circle" option as well?

I think may be add a check to make sure the image is a square.
Some thing like this:
const checkIfSquare = (image: HTMLImageElement): boolean {
  return image.width === image.height;
}

My bad, I only tested it with square images and totally forgot about other aspect ratios! It should make a perfect circle now no matter the ratio. It’d be awesome to add X/Y controls to choose the crop spot, but that’s a bit out of my league. Let me know what you think!


Add create index concurrently option

Related to #1624.
https://www.postgresql.org/docs/14/sql-createindex.html

Another difference is that a regular CREATE INDEX command can be performed within a transaction block, but CREATE INDEX CONCURRENTLY cannot.

https://thoughtbot.com/blog/how-to-create-postgres-indexes-concurrently-in

ActiveRecord 4’s new disable_ddl_transaction! method must therefore be used in combination with algorithm: :concurrently migrations (as seen above).

Please review.

@a8m Do you want me to separate this PR?

Hey @a8m is it possible to merge this change in? I also have a good use-case for using concurrent index creation!


Streaming Service of the European Commission

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting a new site support request
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that none of provided URLs violate any copyrights or contain any DRM to the best of my knowledge
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and am willing to share it if required

Region
Europe
Example URLs

Single video: https://webcast.ec.europa.eu/risk-management-logic-of-the-ai-act-and-related-standards-2024-05-30

Provide a description that is worded well enough to be understood
This is a site request for the Streaming Service of the European Commission, accessible at webcast.ec.europa.eu.
I have observed that Video DownloadHelper can download the media.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://webcast.ec.europa.eu/risk-management-logic-of-the-ai-act-and-related-standards-2024-05-30']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds [7a03f88c4] (pip)
[debug] Python 3.10.12 (CPython x86_64 64bit) - Linux-6.5.0-41-generic-x86_64-with-glibc2.35 (OpenSSL 3.0.2 15 Mar 2022, glibc 2.35)
[debug] exe versions: ffmpeg 4.4.2 (setts), ffprobe 4.4.2, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.11.0, brotli-1.0.9, certifi-2023.07.22, mutagen-1.45.1, pyxattr-0.7.2, requests-2.32.3, secretstorage-3.3.1, sqlite3-3.37.2, urllib3-1.26.18, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1823 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds)
[generic] Extracting URL: https://webcast.ec.europa.eu/risk-management-logic-of-the-ai-act-and-related-standards-2024-05-30
[generic] risk-management-logic-of-the-ai-act-and-related-standards-2024-05-30: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] risk-management-logic-of-the-ai-act-and-related-standards-2024-05-30: Extracting information
[debug] Looking for embeds
ERROR: Unsupported URL: https://webcast.ec.europa.eu/risk-management-logic-of-the-ai-act-and-related-standards-2024-05-30
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1605, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1740, in __extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/extractor/common.py", line 740, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/extractor/generic.py", line 2521, in _real_extract
    raise UnsupportedError(url)
yt_dlp.utils.UnsupportedError: Unsupported URL: https://webcast.ec.europa.eu/risk-management-logic-of-the-ai-act-and-related-standards-2024-05-30

possibly related: https://github.com/yt-dlp/yt-dlp/issues/4933


Do we need hardcoded versions for dependencies?

See:
https://github.com/inbo/uvabits/blob/f8b1730b467729d99827f49799db450a507442c7/DESCRIPTION#L22-L32
Do these need hardcoded versions and if so, for which ones (e.g. I don't think we need it for knitr)? devtools::check() fails on my computer because:
namespace ‘data.table’ 1.11.8 is being loaded, but == 1.9.6 is required

As we tend to have a package in continuous development for the entire community, we should remove these hard coded versions... But, we will have to check this before removing, as the monthly bird tracking pipeline relies on these versions (and we still run into troubles now and then).
First thoughts: Removing versions here will actually induce issues:

when features are added which are not supported by the defined pipeline R package versions
when certain minimum versions are requested in this package, the installation in the pipeline will stop with an error

If we do not do the latter and we do not alter the functions used by the pipeline, this could(!) work in the short run but I'm worried about the long term aspect of it. Hence, we should make sure:

the pipeline can use/install the package requirements of this package
other R code in the pipeline should work with these versions as well

So, let's make sure to have a robust CI-check on the pipeline commands integrated in the adopted package setup?

I have updated the hardcoded versions (==) to minimum versions (>=) for all dependencies in 34aa233. That allows easier development, e.g. running devtools::check() with more updated versions installed.
For the current pipeline, I have created a release of the package: https://github.com/inbo/uvabits/releases/tag/bt-etl

This applies to the BirdTrackingEtl version of the package, which we no longer maintain. Closing with wontfix.


Is it possible to append a sequence?

Regarding the sequence class, is it possible to dynamically append to a sequence?  For example, I would like to queue a sequence with some number of effects and then sometime later before the effects are complete, I would like to queue another effect to the end of the sequence.  Can this be done with the existing library?

Hi, this is currently not possible, since the array of JLed objects passed to the JLedSequence constructor is not managed by the JLedSequence object, but the calling client (since I want to keep memory management out of the lib) and currently the array can't be changed after construction.
Easiest way to achieve what you want to do with the current lib would be to construct a second JLedSequence object with a new or modified JLed object array and switch to this one.

That is what I thought.  Thanks for the feedback.  What I am trying to accomplish is to queue an effect.  I thought sequence might help this.  The approach I have taken is to use a queue object.  At first, i thought I could queue the JLed object but realized that is likely not going to work because the constructor initializes the time_start_ and last_update_time_ et al.  So I created a struct for the blink effect parameters and pull the struct from the queue and do an assignment to a JLed blink object.  There is an issue with this approach however.  You cannot change the effect from say Blink to Breathe.  I tried to create an uninitialized JLed object and then dynamically assign the effect but this would not compile.

I quickly assembled an example (could not test it, because I have no micro controller at hand right now). The example randomly "plays" effects, it's a similar use case to yours, hope that helps:
// Copyright 2019 by Jan Delgado. All rights reserved.
// https://github.com/jandelgado/jled
#include <jled.h>

// Endless playing random JLed sequence
class RandomJLedSeq {
    private:
        uint8_t pin_;
        JLed *led_ = nullptr;

        // return a new JLed object where (most) parameters are set randomly.
        JLed* NewRandomJLedSeq() const {
            auto led = new JLed(pin_);
            switch(random(0,5)) {
                case 0: led->Blink(random(100,2000), random(100,2000)); break;
                case 1: led->Breathe(random(100,2000)); break;
                case 2: led->FadeOn(random(100,2000)); break;
                case 3: led->FadeOff(random(100,2000)); break;
                case 4: led->Candle(); break;
            }
            led->Repeat(random(2,11));
            led->DelayBefore(1000);
            return led;
        };

    public:
        RandomJLedSeq(uint8_t pin) : pin_(pin) {}

        virtual ~RandomJLedSeq() { delete led_; }

        RandomJLedSeq(const RandomJLedSeq& led) { *this = led;}

        RandomJLedSeq& operator = (const RandomJLedSeq&led) {
            if (this != &led) {
                pin_ = led.pin_;
                led_ = led.led_ ? new JLed(*led.led_) : nullptr;
            }
            return *this;
        }

        void Update() {
            if (!led_) {
                led_ = NewRandomJLedSeq();
            }
            auto running = led_->Update();
            if (!running) {
                delete led_;
                led_ = nullptr;
            }
        }
};

auto led = RandomJLedSeq(LED_BUILTIN);

void setup() {
}

void loop() {
    led.Update();
}

Thanks for the feedback.  I have had some success with using a queue.  Along the way, I think I have observed that this library has a problem when used with interrupts.  As mentioned in the other thread, I use my own timer for keeping track of time when I sleep.  I use the SAMD "periodic event" timer.  I have a method "blink" that I use to queue an LED blink.  The periodic event calls Update() and checks to see if there is a pending blink in the queue.  If there is, it pops the blink from the queue and assigns the effect parameters to the JLed object.  I have determined that the flags_ variable is optimized by the compiler and doesn't update properly.  That is, when I check the status using IsRunning() in my loop(), it is always true.  If I add the "volatile" keyword to the declaration then IsRunning() returns the correct state.
   volatile uint8_t flags_ = 0;
I have not considered yet if any of the other variables need to be declared volatile as well.

JLed is not thread safe.  Could you post some example code so I better understand the setup?

Here is an example:
//  JLed
//  create queue for LED
Queue	ledBlink_q(sizeof(ledBlink_t), 10, FIFO);
JLed statusLED = JLed(LED_BUILTIN).Blink(1000, 1000).Repeat(1);

void blink( int numBlink = 1, unsigned int speed = BLINK_DURATION_SHORT, int level = BLINK_LEVEL_VERBOSE, int color = 1, bool wait = false ) {
  if ( level <= BLINK_LOG_LEVEL ) {
    ledBlink_t led;
    led.on = speed;
    if ( speed < (RTC_PERIODIC_EVENT_PERIOD * 2) ) {
      led.on = RTC_PERIODIC_EVENT_PERIOD * 2;
      led.off = RTC_PERIODIC_EVENT_PERIOD * 2;
    } else {
      led.on = speed;
      led.off = speed;
    }
    led.num = numBlink;
    led.wait = wait;
    noInterrupts();
    ledBlink_q.push(&led);
    interrupts();
    if ( led.wait ) {
      while ( !ledBlink_q.isEmpty() || statusLED.IsRunning() ) ;
    }
  }
}

void rtcPeriodicEvent() {
// EVSYS periodic event interrupt callback
  rtcTickMS += RTC_PERIODIC_EVENT_PERIOD;
  //  millis() in jledhal needs to be updated for this to work during sleep.
  if ( !statusLED.Update() ) {
    if ( !ledBlink_q.isEmpty() ) {
      ledBlink_t led;
      ledBlink_q.pop(&led);
      statusLED = JLed(LED_BUILTIN).Blink(led.on, led.off).Repeat(led.num);
    }
  }
}

setup() {
  blink(5, BLINK_DURATION_LONG, BLINK_LEVEL_NOTICE, 1, false);
}

loop() {
}

I updated millis() in arduino_hal.h to return the value of rtcTickMS.
The rtcPeriodicEvent() handler processes the rtc periodic event interrupt.  At the moment, this interrupt fires every 125 ms.  The handler calls the JLed Update() method.  This is done so that the LED timing is not affected by the length of time it takes to execute the code in the loop() which can vary depending on what it is doing at any particular time.   When there is no running JLed, the handler pops the parameters off the queue and starts a new JLed.
The blink() method pushes the parameters for the blink onto the queue.
Without the volatile declaration, IsRunning() always returns true.
The queue must also be interrupt / thread safe.  For the moment, I brute force it and turn off the interrupts when pushing onto he queue.  I have found another library for this purpose and will use that shortly.


Update build configuration

The build configuration of this project is outdated and may no longer work.
This pull request will be merged automatically if there are no conflicts.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Lastest publish as minor breaks dependents due to api change.

This commit https://github.com/react-component/animate/commit/fdec45af3fc62de7a03c2554ff0bfc2fff97e318
Has broken our code that requires in this module, as it has changed the export to require .default(). Could a patch be released to revert this change and a major bump be released with this change so our services dependent on 2.x.x don't break?

I don't konw what's your use case, it should be no problem.
see<EMAIL_ADDRESS>exports['default'] = Animate;
module.exports = exports['default'];

Closing this, I was seeing the issue when parsing a file that was importing animate with acorn v3. Acorn v5 handled it correctly. Thanks! :)


Update the npm scope

@kuai is the most ideal scope for the kuai project, with that the cli could be referenced as @kuai/cli.
However, the scope is unavailable on npm registry so we have to pick another one. Now @ckb-js is accessible, how about naming our packages in the pattern @ckb-js/kuai-*(only in package.json) @yanguoyu @felicityin @PainterPuppets

PR: https://github.com/ckb-js/kuai/pull/105


TypeError: this.tree.refresh is not a function

Hi, I am trying to integrate this but found an issue occurred from monaco-tree.js
TypeError: this.tree.refresh is not a function
50 |            this.setState({ directory: props.directory });
51 |
52 |        } else {

53 |          this.tree.refresh();
| ^  54 |          this.expandTree(this.tree);
55 |
56 |        }

This has been fixed.
Thanks


encoding/jsonschema: support native conversion from CUE to jsonschema

Originally opened by @myitcv in https://github.com/cuelang/cue/issues/929
An issue to capture https://github.com/cuelang/cue/discussions/663

Hello
As encoding/jsonschema: support native conversion from CUE to jsonschema cuelang/cue#929 is closed, does that mean there is now support for generating jsonschema?

The issue was closed on the old repository and has been copied here.
I believe that it is not natively implemented based on: https://github.com/cue-lang/cue/discussions/663#discussioncomment-960087

I’d be interested to be able to round-trip jsonschema -> cue -> jsonschema natively in cue.
My use case being that Helm supports jsonschema to validate provided values, we have a Helm chart that already has a schema defined and I’d like to try out cue as the source of truth.
Hence, I’d like to cue import the schema, work on the cue file henceforth and derive a schema that the Helm chart then uses for validating user input.

I'm working on a schema registry for my company and would like to have cuelang be the source of truth but serve up jsonschema for compatibility with various services.  Having this built into the cue cli would allow us to make that all happen with culang tool commands really easily.

FWIW the JSON Schema encoding package in Thema amounts to a generic CUE->JSON Schema converter - it takes OpenAPI 3.0 output (as produced by the cue stdlib openapi encoder) and transforms it to be valid JSON Schema.

Similar to @loewenstein I'm interested in this as part of a Helm solution. I'd like to POC a Helm plugin to treat cue as the source of truth for a Helm chart and use it to generate the YAML values and JSON schema prior to publishing.

FWIW @stevehipwell I explored the alternative of enabling native CUE support for Helm validation in https://github.com/helm/helm/compare/main...loewenstein:helm:cue
I didn't proceed any further yet, as neither the Helm nor the CUE community seemed very interested.
Validation should be a pretty low hanging fruit if Helm maintainers would accept an additional explicit language for value validation.
I also started exploring replacing gotemplate as the templating language with CUE, but that's is likely to be more involved.

@loewenstein this probably falls more into the security area. Personally I'd like to keep the DX of being able to easily modify chart values while being able to lock them down with a schema at point of publishing. For example I'd like image digests to be fixed in the schema with the repo location customisable; for debug usage the ignore schema flag could be used. Longer term helm could nativity support this but a simple plugin to run pre-publish could add functionality without needing any changes to Helm (it could also generate Artifact Hub metadata).

+1 for this feature. It is really nice also for having the runtime validation in CUE, but produce assets that enable IDE autocomplete, which is where JSONschema has really good adoption.

I would fully support integrating CUE directly into Helm, especially if it successfully replaces the current unmarshaller. The current state of Helm Values is disastrous, mainly due to its impracticality.
If I recall correctly, JSON Schema support is limited to Draft 7, and even then, it’s rather poor—I’ve encountered several issues that deviate from the standard. Frankly, writing JSON Schemas is extremely challenging; you’d almost need a doctorate in rocket science to master it. I believe this is the main reason it hasn’t gained much traction.
CUE could elevate Helm to an entirely new level. Schemas would finally become accessible to the average user, and CUE’s built-in features, like the ability to reference Values, would be transformative. Additionally, I can even imagine it being fully backward-compatible with the current setup. All in all, it’s clearly a win-win situation.

Hey @Loewenstein,
I’ve taken the initiative to draft a PR (https://github.com/helm/helm/pull/13236) proposing the incorporation of CUE into Helm. I used the code from your cue branch (https://github.com/loewenstein/helm:cue) and rebased it onto the main Helm branch (https://github.com/helm/helm:main). I then modified it to process the JSON schema from the values.schema.json file using CUE for direct evaluation, replacing the outdated JSON schema validator. I tested this with the Bitnami NGINX chart (https://charts.bitnami.com/bitnami/nginx).
Before marking the PR as ready, I plan to transition the loading, validation fully, and subsequent processing of Values to CUE, ensuring full backward compatibility while enabling CUE as an option. Progress has been a bit slow since I am still getting the hang of Go, so any assistance or advice would be really helpful. Also, if anyone has feedback on the HIP draft, I am all ears. With your input, we could make Helm even better.
Btw. just FYI: I’ve mentioned you as the co-author to credit your work—hope that’s okay with you. :)


Fix bundle states

I like the new states! Much cleaner than before. I'm just also wondering, how do you differentiate "ignored" with "invalid version"?

I like the new states! Much cleaner than before. I'm just also wondering, how do you differentiate "ignored" with "invalid version"?

ignored is in an unmonitored namespace and invalid version has a name that we do not recognize

So is this a correct map from the previous states to the current states:

inactive, active, active (upgrade available) -> available
ignored -> ignored
ignored version, invalid version -> invalid version

So is this a correct map from the previous states to the current states:

inactive, active, active (upgrade available) -> available
ignored -> ignored
ignored version, invalid version -> invalid version

ingored version gets mapped to available now. ingored version was for a version of k8s that did not match the server version

inactive, active, active (upgrade available) -> available
ignored -> ignored
ignored version, invalid version -> invalid version

So in summary - a map from the previous states to the current states:
inactive, active, active (upgrade available), ignored version -> available
ignored -> ignored
invalid version -> invalid version

/lgtm
/approve


Fix rotation matrix order for other parts

Codecov Report
Attention: Patch coverage is 0% with 6 lines in your changes missing coverage. Please review.

Project coverage is 90.33%. Comparing base (52b59b2) to head (dd32323).

Files
Patch %
Lines

moyopy/src/lib.rs
0.00%
6 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #5      +/-   ##
==========================================
- Coverage   90.39%   90.33%   -0.07%
==========================================
  Files          31       31
  Lines        4477     4480       +3
==========================================
  Hits         4047     4047
- Misses        430      433       +3

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


Release v1.0?

This addon has been stable for a long time and seems ready for a 1.0 release, it would be a huge help to addons using this package to have a 1.0 release as declaring ^1.0.0 in package.json wouldn't require an update when a new minor version is released. On the other hand the 0.3.0 release this week is going to require a lot of churn to ship across the ember ecosystem.
Thanks for a great addon!

@mansona it looks like you bumped a release today, just wanted to ping you on this. 0.4.0 is going to once again cause a bunch of churn for dependency-lint enabled apps while addons get caught up. 1.0.0 would be much appreciated.

now that #29 is merged I have released v1.0.0 🎉

Thanks for pushing this over the line!


B96b serial async fix multiserial

In case of app with 2 serial (using DMA) + 1 serial (stdio), we have found a bug. The dma handler is overwritten by the last initialized serial object.
Therefore read and write functions did not work anymore.
We have reworked this file to save 1 handler per UART IP, and align it with MBED OS file.
Tests have been passed. Same status as before (OK except MBED_37, manual test for SERIAL_ASYNC also OK)

It might be worth splitting this into 2 commits, one would be fixing handles for uart, the second one would be adding MBED_DMA_Start_IT. Let me know what you think

Those comments were helpful, please consider adding them to the commit message.

Any update to the commits? I can do it manually, then will describe what I have done

Hi,
Could you do it manually ? thanks
Cheers

Manually merged


Live

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

dotnet/xml/CatLibrary/CatException`1.xml
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/Cat`2.xml
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/Complex`2.xml
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/Dog`1.xml.remove
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/FakeDelegate`1.xml
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/IAnimal.xml
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/ICat.xml
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/ICatExtension.xml
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/MRefDelegate`3.xml
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/MRefNormalDelegate.xml
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/Tiny.xml.remove
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/Tom.xml
:white_check_mark:Succeeded

dotnet/xml/CatLibrary/TomFromBaseClass.xml
:white_check_mark:Succeeded

dotnet/xml/FrameworksIndex/cat-1.0.xml
:white_check_mark:Succeeded

dotnet/xml/MRef.Demo.Enumeration/ColorType.xml
:white_check_mark:Succeeded

dotnet/xml/_filter.xml
:white_check_mark:Succeeded

dotnet/xml/ns-CatLibrary.xml
:white_check_mark:Succeeded

dotnet/xml/ns-MRef.Demo.Enumeration.xml
:white_check_mark:Succeeded

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


User input malformed: expected str for dictionary value @ data['key']

Hello
It is impossible for me to add my sixteen meross sockets
Whereas before it worked without issue.
I choose HACK MODE or USET SET the message is the same.
The version of meross is 2.6.1
Version of HA
Sorry for the mistakes, I'm French

same issue here, after moving from one instance to the other one MSS310 and changed the account

I'm also seeing the same issue here when trying to add a lightstrip. Using Home Assistant 2022.7.7, Supervisor 2022.07.0 Operating System 8.4, Frontend 20220707.1 - latest.

Hello everyone,
I had the chance to test the flow against previous and current versions of HA core/frontend and it looks like the issue lies in the latest frontend (20220707.1) since this is the only version exposing this issue.
I guess there's a bug in there since the official sources don't tell anything about any migration starting in this frontend version...also, it would be very very unusual for the official team to release such a breaking change in between monthly versions...so I guess (99%) it really is a frontend bug.
Let's see if something shows up in the official issues/threads for HA frontend. I didn't have the time to check yet, but I guess some similar errors should be reported at this time in those threads

I have a workaround - Just type in some random chars into the key field and set to cloud retrieve - then it'll ask for user and password.

That is a step ahead for me, only after retrieving the key and confirm,
it’s asking again for user and password. Over and over again.
Il giorno dom 31 lug 2022 alle 22:03 sgtsilver @.***>
ha scritto:

I have a workaround - Just type in some random chars into the key field
and set to cloud retrieve - then it'll ask for user and password.
—
Reply to this email directly, view it on GitHub
https://github.com/krahabb/meross_lan/issues/204#issuecomment-1200490170,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXFSFBU5R6AKWUA6WGJKJUTVW3LXLANCNFSM55EZ32RA
.
You are receiving this because you commented.Message ID:
@.***>

--
Inviato da cellulare

Same issue here as @gianbooo . Any fix coming for this?

I still can't reproduce this issue on any HA version other than 2022.7.7
I'll close this unless there are other contributions