Exporting policies resources for PSRule throwing exception

Describe the bug
When running command I get "You cannot call a method on a null-valued expression.":
Export-AzPolicyResources -DefinitionsRootFolder ./ -Mode psrule -OutputFolder ./ -PSRuleIgnoreFullScope
Within screenshot you can see debugging process I went through. Seems like wrong property is being used.
To Reproduce
Within global-settings.json use:
"deploymentRootScope": "/subscriptions/SUBSCRIPTIONIDEXAMPLE"
Expected behavior
Output files created.
Screenshots

EPAC Version
10.2.11

If you change that line does it work OK? If so you can do a create a PR.
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: tsunami28 @.>
Sent: Thursday, May 30, 2024 7:09:22 PM
To: Azure/enterprise-azure-policy-as-code @.>
Cc: Subscribed @.***>
Subject: [Azure/enterprise-azure-policy-as-code] Exporting policies resources for PSRule throwing exception (Issue #651)
Describe the bug
When running command I get "You cannot call a method on a null-valued expression.":
Export-AzPolicyResources -DefinitionsRootFolder ./ -Mode psrule -OutputFolder ./ -PSRuleIgnoreFullScope
Within screenshot you can see debugging process I went through.
To Reproduce
Within global-settings.json use:
"deploymentRootScope": "/subscriptions/SUBSCRIPTIONIDEXAMPLE"
Expected behavior
Output files created.
Screenshots
Screenshot_451.png (view on web)https://github.com/Azure/enterprise-azure-policy-as-code/assets/46718446/f009a1bb-5a85-4aea-a8f3-423864916cca
EPAC Version
10.2.11
—
Reply to this email directly, view it on GitHubhttps://github.com/Azure/enterprise-azure-policy-as-code/issues/651 or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACWCJVVAL2VNE3RS7NUZG33ZE3UEFBFKMF2HI4TJMJ2XIZLTSSBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJLJONZXKZNENZQW2ZNLORUHEZLBMRPXI6LQMWBKK5TBNR2WLKRSG4ZDKOJYHE2DOOFENZQW2ZNJNBQXGX3MMFRGK3ECUV3GC3DVMWSHI4TVMWSG4YLNMWXHOYLUMNUF6YLDORUXM2LUPGWHG5LCNJSWG5C7OR4XAZNFJFZXG5LFUZ2G64DJMNZZHAVEOR4XAZNKOJSXA33TNF2G64TZUV3GC3DVMWUTGMZXGE3DEOBTHCBKI5DZOBS2K2LTON2WLJLWMFWHKZNKGIZTENJRGUYDKOJSQKSHI6LQMWSWYYLCMVWKK5TBNR2WLKRSG4ZDKOJYHE2DOOFHORZGSZ3HMVZKMY3SMVQXIZI.
You are receiving this email because you are subscribed to this thread.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I would ask you to update your fork to the latest version first though 😊
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Anthony Watherston @.>
Sent: Thursday, May 30, 2024 7:12:45 PM
To: @. @.>; Azure/enterprise-azure-policy-as-code @.>
Cc: Subscribed @.***>
Subject: Re: [Azure/enterprise-azure-policy-as-code] Exporting policies resources for PSRule throwing exception (Issue #651)
If you change that line does it work OK? If so you can do a create a PR.
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: tsunami28 @.>
Sent: Thursday, May 30, 2024 7:09:22 PM
To: Azure/enterprise-azure-policy-as-code @.>
Cc: Subscribed @.***>
Subject: [Azure/enterprise-azure-policy-as-code] Exporting policies resources for PSRule throwing exception (Issue #651)
Describe the bug
When running command I get "You cannot call a method on a null-valued expression.":
Export-AzPolicyResources -DefinitionsRootFolder ./ -Mode psrule -OutputFolder ./ -PSRuleIgnoreFullScope
Within screenshot you can see debugging process I went through.
To Reproduce
Within global-settings.json use:
"deploymentRootScope": "/subscriptions/SUBSCRIPTIONIDEXAMPLE"
Expected behavior
Output files created.
Screenshots
Screenshot_451.png (view on web)https://github.com/Azure/enterprise-azure-policy-as-code/assets/46718446/f009a1bb-5a85-4aea-a8f3-423864916cca
EPAC Version
10.2.11
—
Reply to this email directly, view it on GitHubhttps://github.com/Azure/enterprise-azure-policy-as-code/issues/651 or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACWCJVVAL2VNE3RS7NUZG33ZE3UEFBFKMF2HI4TJMJ2XIZLTSSBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJLJONZXKZNENZQW2ZNLORUHEZLBMRPXI6LQMWBKK5TBNR2WLKRSG4ZDKOJYHE2DOOFENZQW2ZNJNBQXGX3MMFRGK3ECUV3GC3DVMWSHI4TVMWSG4YLNMWXHOYLUMNUF6YLDORUXM2LUPGWHG5LCNJSWG5C7OR4XAZNFJFZXG5LFUZ2G64DJMNZZHAVEOR4XAZNKOJSXA33TNF2G64TZUV3GC3DVMWUTGMZXGE3DEOBTHCBKI5DZOBS2K2LTON2WLJLWMFWHKZNKGIZTENJRGUYDKOJSQKSHI6LQMWSWYYLCMVWKK5TBNR2WLKRSG4ZDKOJYHE2DOOFHORZGSZ3HMVZKMY3SMVQXIZI.
You are receiving this email because you are subscribed to this thread.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Sure thing. I started working on this.

https://github.com/Azure/enterprise-azure-policy-as-code/pull/653


Ask

2 Things. I installed this into my 1.7 server and it installed fine. I tried to enable the scoreboard by changing the command and it still didn't work. I also am unsure of what to put in the config for what I want - I want it to say:
Welcome
{Player}
Faction:
{Faction}
Balance:
{balance}
Server IP:
{IP}

As I said, yes it works on 1.7, but that doesn't mean it has all the features of a 1.8 scoreboard.
How you can edit the scoreboard is already in the config file, it shouldn't be hard to change it up.
Some of the {variables} you want, are defined in PlaceholderAPI's own documentation - https://www.spigotmc.org/wiki/placeholderapi-placeholders/


Update Self

Like NuGet, pretzel should support a 'pretzel update' command which will update in-place.
This will enable scenario's where the exe is copied into source control with documentation etc, and want to be able to simply update to the latest version.
The feature should be updated when extension support is added, so extensions are updated as well.

Is this really necessary with the package available in chocolatey?

Not really


bpaf pre release review

I'm planning to release a new version soon-ish and looking for interesting use cases. No need to merge this right away, I'll update it after the release.
Updated to use rc version of bpaf. Any feedback on the API changes?
New version should fix some of the cosmetic issues and some of UX issues I noticed.
Do you know of any problems that still exist in the current code?

Thanks for your Contribution!
I really like the API changes and the cleanup that comes with them.
Though I am not aware of more issues yet, I was planning on testing some odd inputs anyway so
maybe Ill find something...
Will merge this when either 0.2.7 or 0.3.0 releases

I'm planning to release a new version soon-ish

Released. And updated the branch.

I was planning on testing some odd inputs anyway so maybe Ill find something...

Great. Feel free to make a ticket if you get unexpected looking user error message - I'll either try to make it look better or will update the docs.


Error when trying to upload image to imgs.sh

I can ssh perfectly fine, account is created. But when trying to upload an image I'm getting the following:
sql: Scan error on column index 0, name "sum": converting NULL to int is unsupported

@Soutaisei so sorry for the late response, are you still having issues?

Closing for now.  Please feel free to comment if you still have issues!


Can I use it with memory-fs or WebSocket-fs? Because many times, fs only represents this machine.

Can I use it with memory-fs or WebSocket-fs? Because many times, fs only represents this machine, expecting to pass in fs

I have the same question. Have you resolved it?

This does work in v8, by providing an fs option that implements stat, statSync, readdir, and readdirSync.  However, I'm considering removing this in v9, as it adds quite a lot of complexity.
Do you still need this feature?


python3Packages.meshtastic: 1.2.53 -> 1.2.54

Motivation for this change
https://github.com/meshtastic/Meshtastic-python/releases/tag/1.2.54
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@ofborg build python39Packages.meshtastic python310Packages.meshtastic

Result of nixpkgs-review pr 154968 run on x86_64-linux 1

2 packages built:

python310Packages.meshtastic
python39Packages.meshtastic


Keys defined in dev.env.js are not accessible

Hi,
Based on Environment Variables the keys defined in dev.env.js file must be accessible when running npm run dev in the app.
This is the content of my dev.env.js:
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  SAMPLE: '"XX"',
  AUTH_URL: '"http://localhost:3030"'
})

And when I try to access AUTH_URL in App.vue like this process.env.AUTH_URL, I receive undefined

Same is happening to me @pmesgari

@pmesgari Any further input? I can't really reproduce this ... Can you provide a repository with a minimal production?

@LinusBorg I have been trying to reproduce this, it might have been an issue with chrome debugger or webpack itself, I did a complete restart of my computer, and now it works. If it happens again, I will let you know.

I am having a similar problem, process.env in empty... even though I haven't touched the config files...

I believe I may be dealing with the same issue. I get process is not defined. I opened an issue here
https://github.com/vuejs/vue-cli/issues/934
Which includes a repro repo


Spring 2018 updates are live!

We are updating our Terms of Service, our Privacy Statement, and a few other documents!
Please see the following pull requests:

Updates to the Corporate Terms of Service - Spring 2018
Privacy statement spring 2018
Updates to the Standard Terms of Service - Spring 2018
DMCA guideline updates spring 2018

We're very excited to share these updates with our community. Please take a look. Our comment window will be open until May 18 to give us enough time to incorporate changes before the policies become effective on May 25.

And spring 2018 updates are now effective and on the website. Thanks, everyone who gave feedback!


Persist models back to JCR

I have a project where some fairly complex object graphs need to be persisted to the JCR.
There will be JCR nodes/Sling resources which get adapted to Java models, modified, then committed back to Sling resources. My preference is to use Neba as the model provider since it's IMO more feature-rich and elegant than Sling Models, Slice, etc.
I understand there are likely to be some challenges in implementing this kind of feature, in particular AnnotatedFieldMappers would need to be able to serialise fields as well as deserialise (map) them, though this is hopefully not an insurmountable task.
I'm curious if you feel that persistence has a place in the Neba framework and if it fits the philosophy/roadmap for the product? I will need to implement a solution for my project anyway, and would be happy to contribute some of that work back to Neba if it's of interest.
Keen to hear your thoughts.

Hi @djessup, first of all, thanks for considering the Neba framework for this!
Generally, I cheerfully welcome the idea. Persisting the models could enable some cool things (like, validating form data and then persisting it...)
Indeed, I spend some time thinking about this approach as well.  IMO, what would be required is an enrichment of the existing annotations to provide sufficient information for persisting the model and, as you mentioned, an extended AnnotatedFieldMapper for custom annotations.
For instance, a specific annotation could be introduced like so
@PersistableResourceModel(primaryType=x, mixinTypes=x, resourceType=x, resourceSuperType=x)
The mapping behavior of this model would equal
@ResourceModel(types = resourceType)
Alternatively, one could also come up with a loose contract and instead require the presence of certain annotations to persist a model, like so:
@ResourceModel(types=...)
public class MyModel {
     @PrimaryType
     private String primaryType = "this:is:the:default:when:the:model:is:not:loaded:from:jcr";

     @ResourceType
     private String resourceType = "this/is/the/default/when/the/model/is/not/loaded/from/jcr";

    @ResourceSuperType
    ...

    @MixinTypes
    ...
}

With pretty much all annotations being optional for persistable models but the @ResourceType annotation.
So, to summarize, I believe this is very much feasible, but the API design will be the crux. Also, there will be some general design questions to consider -  for instance: Do we need a "PersistenceContext" tracking the relationship between the persistent representations (Resources) and models, to ease modification of existing resources (hello, JPA!)?
At any rate, I will gladly support and welcome your contribution!
Thanks & regards,
Olaf

Thanks Olaf, great to hear there is in-principle support for the idea.
I agree that solid API design is crucial, as would be performance - particularly when processing a large graph.
Indeed, one of the questions currently rolling around in my head is what the policy for graph traversal would be during a persist operation.
For instance, say you have three models:
class ModelA {
    @Reference ModelB modelB;
}

class ModelB {
    @Reference ModelC modelC;
}

class ModelC {}

now you hydrate ModelA from a resource and make some changes:
ModelA myModelA  = resource.adaptTo(ModelA.class);
myModelA.setSomeProp("value");
myModelA.getModelB().getModelC().setSomeProp("other value");

So the graph is ModelA -> ModelB -> ModelC and we've modified ModelA and ModelC, but not ModelB. Now we persist ModelA:
ModelPersister.persist(myModelA, resource);

The data in myModelA would be written to resource. At some stage the modelB property would be inspected, and in an efficient system if no changes existed between the model and resource representations it would be skipped. However ModelC is "dirty", so by association ModelB is too, however we can only discover this by exploring the tree. Imagine a more complex graph and this quickly becomes an expensive endeavour!
All of this is to say, "what to do?". Some options are:

Don't persist graphs, only single models
Make traversal configurable (e.g. via an annotation @PersistStrategy(Strategy.IGNORE)) and let the develop determine what is appropriate
Find a way to efficiently track dirty models/change-sets so traversal becomes unnecessary

Or a combination of these, in fact.
I have quite a few thoughts on details of an implementation. Is this the best place to document/discuss, or is there a better venue like a wiki or something?
Cheers
David.

@djessup Personally, I am fine with discussing this in this ticket - but I could also setup a wiki if you would prefer that!
Regarding persisting graphs: I believe we must support persisting entire graphs, that is a key feature from my point of view.  I think we should transparently track the relationship of a model to the resource it was mapped from. This should well be feasible, since all adaptations pass the adapter factory.
Then, we could use this information to decide whether a resource must be created or updated.
However,this implies that we also model the respective scope. For HTTP requests, we could use the Open-Session-In-View pattern to open up a persistence context for tracking the relationships. outside of a request, we would however need to come up with a different way to open and close the tracking context... perhaps we cold piggyback on Spring here, like DAO support / @Transactional and the like? We could pick up on some good old ideas here, for instance http://www.citytechinc.com/us/en/blog/2008/12/tutorial_jackrabbit.html. What do you think?
Regarding the smartness of the graph traversal, I am thinking of two things we can leverage:

On a Node level, i.e. relationships between resource models: Persistence only cascades to relationships that are either greedy, or lazy relationships that have been loaded. This way, we also achieve conceptual consistency. Would you thing that leveraging lazy loading would suffice to minimize unnecessary graph traversal?

On a property level: I believe we can delegate the decision to update or not to update to the ModifiableValueMap view of the resources (or a wrapper thereof, if it's not smart enough). Since this is a hash map, it should be fairly straightforward to decide whether a value was changed I believe.

Regards,
Olaf

I agree that full-graph persistence is key, and tracking the lazy relationships sounds like a promisingly elegant solution to over-enthusiastic persistence, I like that one. I'd want to battle-test it because I expect there could be edge cases where a graph might still end up being handle properly, but certainly it sounds like an approach worth pursuing.
Re the persistence context, am I right in thinking you mean essentially a form of session which tracks which of the lazy relationships have been traversed when the persistence operation occurs? If so would this not also naturally be opened at the time a resource is adapted, then closed when the object is persisted or destroyed? Sorry, I feel like I may have misunderstood the question?

Regarding the persistence context, Indeed the adapter factory could be the right place to open the context. However, I am not sure about closing / committing it - resources may be opened by application-scoped resource resolvers and live rather long - also, I am unsure how we could track object destruction. Perhaps the most consistent approach is to scope it to the underlying JCR session by default. This, however, would require that we know about the session life cycle events, e.g. destruction callbacks, which I do not see in the API...
Perhaps explicit scoping, e.g. with something like @Transactional, and a default open session in view filter would be the feasible approach?

I don't have experience with @Transactional so I'm struggling a bit to understand exactly how it would apply, and I'm wondering if we might be confusing two problems here?
The first is keeping track of what has changed in a model graph, and this is really tied to the lifecycle of the model instance. This context needs to be initialised at the time the instance is created (i.e. adaptation), reset when the model is committed, and closed when the model is destroyed.
The second issue of transactions I see as separate, and from what I've read of @Transactional it looks like it could be a useful framework for handling the writeback of models to the JCR in an atomic manner, but to do so efficiently relies on solving the first problem.
So back to problem 1), I have a few ideas for how this could be achieved.
a) When the model is created (adapted) keep a WeakReference to it and when the model becomes unreachable destroy the associated context.
b) Poll the resolver that provided the resource and if it is no longer live then destroy the context. This makes the assumption that models become invalid once their underlying resource session ends, which seems to make sense to me (and also underlies annotations such as @This), but needn't necessarily be the case since a separate resolver could be used for persistence, and in some cases may be desirable.
c) Impose a hard timeout and destroy context sessions that have been open longer than a predefined period.
With a) the risk is that poorly designed consumer code may hold a model reference indefinitely, preventing garbage collection. With b) there is also the risk of long-running sessions, however this is already an accepted risk associated with ResourceResolvers. With c) it's clearly a clumsy approach and I'd consider it a last resort. In reality I don't think there is any specific harm keeping these context sessions longer than necessary, aside from the memory they consume.
Any thoughts on any or all of these approaches to handling the context session?
PS. If this is feasible, it may also be possible to implement the standard bean destruction methods like @PreDestroy!

One further idea I forgot to mention, is it possible to use the lazy loading proxy instance itself to store and query the context, thereby implicitly scoping it to the bean instance without having to actually track the beans lifecycle externally?

Hi @djessup
@olaf-otto is very busy this week. As I am not sure what exactly he had in mind, I have a hard time answering your questions. I hope you're ok with receiving an answer from Olaf next week.
Cheers, Dani

Hi @DaniRey, no problem at all - I know the feeling!

Hi @djessup , I'm finally out of the woods again :-)
First of all, thanks a lot for keeping up the good discussion! I absolutely agree with your list of options and with the pros/cons you mentioned. If we go with an automated context management, I'd probably favor a), as it imposes no additional constraints on the application. However, as you mentioned, all options have specific drawbacks.
What I meant to say in my previous comment regarding @Transactional is that we could instead make the context life cycle explicit, i.e. delegate it's control to the users and expose means to open and close the context.
As a default, we could automatically open and close it using a servlet filter for everything request-scoped, which should cover 95% of all use cases and also matches the scope of the corresponding resource resolver.
For adaptations occurring outside of the request, user's would have to explicitly open and close the context - in case they want to write to the JCR.
What do you think?
Cheers,
Olaf

Hi @djessup!
First of all, happy new year!
Are you still interested in developing this addition?
Kind regards,
Olaf

Hi @olaf-otto,
And a happy new year to you too, thanks!
Yes, in principle I'm still interested - however I'm in the middle of a career transition and will be travelling a bit the next month. I soon should have a better idea of how much I can commit to working on this - apologies for dragging it out but I'm afraid that's the situation I'm currently in.
I'll try to start getting my brain into gear for this over the next few weeks and will check in mid-Feb with a clearer idea of if and how I might be able to proceed.
Cheers,
David.

Hi @djessup
I will close this issue as won't fix for now - to be re-opened when we find the time to address it!
Kind regards,
Olaf


Swift 4 Support

I have an app currently in development and I am using your work here to help with sending emails to my users. Will the code here still work when I update to swift 4? Thanks for your time I really appreciate it.

The following code for the StringExtensions.h file should be corrected to the following to work with Swift 4/new Xcode
`import Foundation
// MARK: - Extension to remove HTML Attributes from Strings
public extension String {
var htmlToAttributedString: NSAttributedString? {
    guard
        let data = data(using: String.Encoding.utf8)
        else { return nil }
    do {
       // return try NSAttributedString(data: data, options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:NSNumber(value: String.Encoding.utf8.rawValue)], documentAttributes: nil)
        return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html,
                                                            .characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil)
    } catch let error as NSError {
        print(error.localizedDescription)
        return  nil
    }
}

var htmlToString: String {
    return htmlToAttributedString?.string ?? ""
}

}`

pull request? :)


[FEATURE REQUEST] Converting existing images in vault

Feature request:
It would be great to add the possibility of converting existing images in the vault and replacing the links with the proper file name in the notes.
The converter works perfectly; however, a user's vault can already have a huge size due to existing image files stored in less effective formats like .png. It is relatively easy to convert all image files with a script; however, all notes that refer to the converted image need to be updated as well.
Thank you for this great plugin!

thanks for checking out the plugin, you are not the first one requesting this now, thus going to have to look into it 😅

Closing as duplicate of https://github.com/xRyul/obsidian-image-converter/issues/7
Please continue conversation there.


Unexpected KO countdown outside the ring

Hello,
During one of the games earlier today, I noticed a "potential" issue with the knockout countdown algorithm when one of the players fell off the ring.
The game was evaluated during CI run #7245, and the full replay of the game is attached below (the important bit starts from 1:45).
https://github.com/cyberbotics/wrestling/assets/22929099/0d6229ab-f32e-4ab3-b5fe-9a921d643803
I was confused at first, but I believe the KO countdown for the player outside the ring was not continuously triggered because the position of their head was higher compared to the other player (Z coordinate). This change was introduced via https://github.com/cyberbotics/wrestling/pull/96 according to the following description in https://github.com/cyberbotics/wrestling/issues/95.

Improve the KO countdown algorithm: when a robot gets below the height threshold, start the countdown for this robot. However, if the other robot gets below the first one, then stop the countdown for the first robot and start it for the second one, etc.

It is probably too late to discuss/change the knockout counter algorithm for the current edition, but I just wanted to bring it to your attention for future reference. :)

True. We will try to fix that later on.


Connecting to Cassandra with SSL fails

I fixed this and got a new one:

Upgrading the cassandra-driver python module resolved this one. I'm testing again.


catalogs listing query bug

Issue
browsing /catalogs shows no results.
expected behaviour
a list of catalogs is returned.
suspected cause
the main query generated by https://github.com/RDFLib/prez/blob/4ce71b790c571421356ebb61f614253af3280be2/prez/services/listings.py#L100 seems to have lost a reference to dcat:Resource after PR #265
the code for the listings_function function and PrezQueryConstructor class don't seem to have been changed so probably it is a profile thing.
question
is this the intended behaviour now? or is this a bug
note
see below screengrab for old vs new query as captured in the debugger

There was an ongoing discussion here https://github.com/RDFLib/prez/discussions/235
However.. I have some changes to define custom endpoints I'll push soon.
What's the full set of your Classes / relations between them?
Something like this?
{
          "name": "Catalog Record",
          "hierarchy": [
            {
              "rdfClass": "http://www.w3.org/ns/dcat#Catalog",
              "className": "Catalog",
              "hierarchyLevel": 1
            },
            {
              "rdfClass": "http://www.w3.org/ns/dcat#Dataset",
              "className": "Dataset",
              "hierarchyLevel": 2
            },
            {
              "rdfClass": "http://www.w3.org/ns/dcat#Resource",
              "className": "Resource",
              "hierarchyLevel": 3
            }
          ],
          "relations": [
            {
              "levelFrom": 1,
              "levelTo": 2,
              "direction": "outbound",
              "rdfPredicate": "http://purl.org/dc/terms/hasPart"
            },
            {
              "levelFrom": 2,
              "levelTo": 3,
              "direction": "outbound",
              "rdfPredicate": "http://purl.org/dc/terms/hasPart"
            }
          ]
        }

any others? vocab routes?

yeah I have some vocab with just two levels
skos:Concept -- skos:inScheme --> skos:ConceptScheme

and the catalog record heirarchy is just
dcat:Catalog -- dcterms:hasPart --> dcat:Resource

Could you confirm if it's still an issue when defining your own custom endpoints now https://github.com/RDFLib/prez/pull/274 has been merged

well it is still an issue in the sense that it does not show catalogs that only have dcat:Resources in them by default.
it works after defining a custom endpoint and I guess that is OK if that is the behaviour that we want.
would it be a problem to add dcat:Resource to the default endpoint nodeshape properties?

Ah, I had in fact added it back to the default endpoints too
I'll add a test now
ex:shape-R0-HL3-2 a sh:NodeShape ;
    sh:property [ sh:class dcat:Dataset ;
            sh:path [ sh:inversePath dcterms:hasPart ] ],
        [ sh:class dcat:Catalog ;
            sh:path ( [ sh:inversePath dcterms:hasPart ] [ sh:inversePath dcterms:hasPart ] ) ] ;
    sh:targetClass dcat:Resource ;
    ont:hierarchyLevel 3 .

doesn't that only allow
dcat:Catalog --dcterms:hasPart--> dcat:Dataset --dcterms:hasPart--> dcat:Resource

but I am suggesting to allow
dcat:Catalog --dcterms:hasPart--> dcat:Resource

Apologies yes the former there
@nicholascar what is the preferred Prez default for "CatPrez" - is it to have the three tier Catalog/Dataset/Resource or the Catalog/Resource . Whichever we choose, we can support the other via configurable endpoints, just need to decide what we want the default to be.

Catalog/Resource
It's simpler and also it's the OGC Records API equivalent which is the "top-level" style catalogue

This is now a default route in prez


Buffer overrun in tld.c

There is a buffer overrun bug in tld.c, lines 96 and 97:
while ( (n=recv(sockfd, recvbuf, MAX_RECVBUF, 0)) > 0) {
	recvbuf[n] = '\0';

If n==MAX_RECVBUF then the assignment of a null-terminator will be one byte past the end of recvbuf.  This consistently causes a segfault in my process that links against the static build of libfaup.  The buffer overrun can be easily fixed reducing the max read length by 1 byte:
while ( (n=recv(sockfd, recvbuf, MAX_RECVBUF - 1, 0)) > 0) {
	recvbuf[n] = '\0';

Thanks for reporting this. Fixed in the main tree.


Shutting down repo and redirecting users to DAGMC.

Sorry to be pedantic, but I think we should merge develop into master first, and then merge this PR into master.
We should tag master as a release before we merge this PR.

Good idea. I'm on board. Maybe a tag like dagmc_move? Make_watertight has never really had version numbers that I'm aware of.

Correct - maybe before_dagmc_move and then add a reference to that tag in the README that will be there after the move.

Sounds good. So we need to PR develop into master then? Is that typically done from within Svalinn or can it be done from a fork? The history would be the same either way, but it might look weird to have a merge into master coming from a fork...

FWIW both merging the develop branch into master and pushing the appropriate tag (which we should probably annotate btw) are restricted to me in this repository and will need to be done by either @gonuke or @makeclean

Not any more :smile:

Had to deal with some conflicts, but the head of develop was tagged with the before_dagmc_move tag, develop was merged into master and I've updated this PR to go straight into master now.

So finally... update the new README to indicate which release should be used to capture the last version of the previous repo.  Something like:
"The final version of this repo can be accessed via the before_dagmc_move release."

Yup, forgot that bit. Just took care of it.

Thanks @Pshriwise


Allow for debug settings in launch.json without specifying a program script to execute

As raised in this issue, when debugging, I would find it very useful to be able to specify as global or project defaults some of the options that you can put into a launch.json file.
My use case is I find it very convenient to use F5 to run my currently open script. The downside is that I lose color output in the debug terminal. The fix for this is to create a launch.json file and specified "console": "integratedTerminal" but, as far as I know, a launch.json file requires a specific script to execute – that is to say, it will not allow me to use F5 to run whatever arbitrary script I have open. It would be nice to get the better output from the integratedTerminal option while maintaining the flexibility of running whichever script I have open at the time.
I'm agnostic on how this is implemented.  It could be that you keep everything the same but in the launch.json file if program is empty, it maintains the behavior of launching the currently open script.
Alternatively, it could be a config file stored in the .vscode folder so that a user could change this on a per project basis. It could be a VS Code setting itself or a combination of the two where global VS code settings are superseded by project-specific ones in the .vscode folder.
If this is currently possible via some way I am not aware of, please let me know. It seems like all of the features exist, I would just like to use an integrated terminal without being locked into hardcoding the name of the script I am executing in launch.json. Thanks for you time.

You can use the ${file} variable to get the path to the current active file in a launch config, that hopefully addresses this for you.

Yes thanks so much!


1.9.1 Bugfix Release

Highlights:
Close #249
Fix a timing issue for chosen init a157401a1b01f5a73800c0538be3a1b6e0ecdbc2

@leocaseiro I think this is good enough for a bugfix release, just wanted to check with you before proceeding. If you think it's good I'm gonna do a release tomorrow.

Its good to me. I’ve tried many fixes for that. Happy for you to release it.
Many thanks for that.


Constant crazy network upload

Describe the bug
While Surge shows no file transfers active, all of them are at 0 bytes / s, if I look at the task manager, Surge is constantly uploading at 30mbit (max of my bandwidth).
surge_bug 30mbit upload.log
I had 20 clients connected, and could see about 50 "remote files" being offered. I restarted Surge and now it's kinda weird, 6 clients connected and I can't see any "Remote Files" but one. NO MORE crazy uploading this time. At least not yet.
surge restart can't see remote files.log
After another restart, Surge found the remote files and is running 5 connected clients and no crazy upload. But I can't see all the remote files I saw when I had the max upload bug at the start. I only see 20 files being shared.
surge another restart I can see files.log
Expected behavior
It's not supposed saturate my whole bandwidth, while IDLE.
Desktop (please complete the following information):

Windows 10 2020h
Firefox
Surge 0.2.1 beta

Here we go again, lower consumption but still

Hi thanks for reporting!
For the record, do you have any files that have been uploading or download recently that couldve been the cause? Can you verify if this bandwidth is upload or download?
If all fails could you wipe %appdata%/surge/db and see if that resolves your issues.
This has not yet been reported by other win clients and we have not come across this yet think.
Btw with regards to incrementing files/client count we will address that in 0.2.2-beta, we have identified the cause.

No current uploads or downloads. Also at the bottom of your app theres a bandwidth meter it all says 0 bytes/s. I can only see this BW in the task manager.
I'll wipe db and report if I see this again.

Good morning @no112358
Valueable feedback as always, I'll write my responses below your remarks.

I wiped it, and added back the downloads I had (since all was reset) and I noticed Surge redownloads everything from scratch instead of using the data already on the disk. This should also be fixed.
We dont identify this as a bug, we track chunk progress in the db files, wiping that wipes our track record of the files that are in surge, if you mean we should do a local file scanning on a per chunk akin to file integrity that would be a nice feature request for in the future, we are in very early beta stages still :). That said this tells me you did have downloads/uploads potentionally going. Perhaps it was just the bandwidth indicator in surge that wasnt correctly displaying for a file, but in reality you were downloading/uploading which would explain the bandwidth usage?
found another bug. I wanted to add a .zip file to Surge, I can't do it. When you select the zip file and click "open", it just opens up / goes inside the zip file and I can't add the actual whole zip file...
We too identified this issue to be with the open file dialog, we have changed this to another implementation in the next release
Replies to edit 3 / 4 / 5 / 7
This behaviour has been replicated from long running surge clients, our peer/file discovery implementation has to scan through the network from peer2peer. However we have identified an issue where files/clients were still marked as online (nPubSub subscription expired before shutdown of remote client to be specific). This explains files listed/clients online which are no longer actually there as you have found from restarting the client. There are very little clients always on at this stage leaving yours on for a long duration, with this bug in place will lead to these issues. We will work on resolving this for the next release
I uninstalled Surge and deleted all the folders associated with it and tried again. I started Surge and added a few downloads and uploads (still can't add zip files) to see if started working and Surge crashed without warning.
Would you also have a panic file for this, next to the log file? %appdata%/surge/ the normal logs dont catch fatal errors

Left surge running, the downloads of beta surge files are still stuck at 0%.
There's no panic file, theres just the db folder, account.surge and surge.log

I appreciate your persistence!
Its all very hit and miss with these issues it seems, from the way you describe it.
If you want to check out the up vs download bandwidth you can use the windows resource monitor (run resmon.exe) there you should be able to see more indepth info :)

I appreciate your persistence!
Its all very hit and miss with these issues it seems, from the way you describe it.
If you want to check out the up vs download bandwidth you can use the windows resource monitor (run resmon.exe) there you should be able to see more indepth info :)

Ok I'll do that.
Tried repackaging the zip file to 7z (7zip file) and it allows upload. It's just a zip thing.
Ohh and BTW good job on async adding of uploads, looks great :D

Nothing new on the bandwidth part, i'll try adding as many downloads as possible, to see if that changes it.
I do have a question, does Surge preallocate disk space? There was unusually high disk usage when I added a big download.
I noticed a repeating problem, when clicking on the download button, nothing happens, and then after a minute or two the file adds itself to the download. This should be instant of course.

Indeed it does preallocate the entire file as length is known, this allows for high concurrency chunk writing to that file without having to lock and also guarantees the file will fit before attempting to download.
Downloads should indeed start right away I think this might be tied to the other issues and instability you have been experiencing. With regards to minimizing to tray that could potentionally come with wails framework v2 (https://github.com/wailsapp/wails/issues/514#issuecomment-716377493)
Most issues seem to be linked to connected clients accumulating with offline clients, and file listings. These are addressed in the upcoming 0.2.2-beta version.
Lastly the high bandwidth somewhere floating between 5-10mbit was also experienced by be today, all of it was download traffic but no surge related traffic nor disk usage was present. I will further escalate this to try to get to the bottom of this. That said it has disappeard for me since a few  hours ago. Additionally removing my account file and generating a new one on startup also fixed that incoming bandwidth, but so far its inconclusive.

Any ETA on the 0.2.2 beta?
Also is there a changelog somewhere I can see what was fixed / added?

No real ETA but we've been pretty rapid with rolling out fixes, issues/roadmap and changelogs can be tracked on github and the website https://surge.rule110.io/
What's interesting is that your bandwidth is all upload, whereas mine was all download. Are you running this client always on? We're definitely still investigating this issue.

No real ETA but we've been pretty rapid with rolling out fixes, issues/roadmap and changelogs can be tracked on github and the website https://surge.rule110.io/
What's interesting is that your bandwidth is all upload, whereas mine was all download. Are you running this client always on? We're definitely still investigating this issue.

It starts doing the upload thing usually after some time passes, usually a day or so. It was always upload in my case, never download. I leave the client running until the upload starts, then I restart, because I need the bandwidth for other stuff.

Been testing out on my laptop also, and I've noticed some weird "downloads" or whatever, long after the file has been downloaded. I mean, I get that the network has overhead traffic, but it seems kinda a lot to me, not sure how to feel about it. The traffic comes and goes randomly, so I take it that's overhead?

I noticed the upload too (only upload, no download) when Surge is running for longer time (Windows 10). It stops after Surge restart.

I'm 100% the bug starts, when the client connects to a certain number of clients on the network. It was fine when under 10 clients, but woke up this morning at 16 clients and there was a 30mbit upload again.

Im fairly confident our large refactoring and architectural improvements will resolve this, however this has not been tested at larger scales yet, so please sit tight for 0.2.2 / 0.3 :)

@no112358 when you have the time could you kindly confirm this has been resolved for you in v0.3.0, if not we will reopen the issue.

@no112358 when you have the time could you kindly confirm this has been resolved for you in v0.3.0, if not we will reopen the issue.


Typo in README.md

Description
Grammatical mistake
Link to documentation
https://github.com/adobe/spectrum-css/blob/master/README.md

We'll be reviewing the README with content strategy in the future and will close these issues for now.


1.9.0 Missing Some Charts

Hey :)
Awesome stuff here with Netdata! Been using it everywhere... But on my unRAID machine 1.9 isn't playing nice. I've dropped back to 1.8 for now.
CPU Clock (cpu.cpufreq)
coretemp-isa-0000 temperature (sensors.coretemp_isa_0000_temperature)
Are some of a small handful of charts which are non-existent on 1.9.
I'm using this docker container: https://hub.docker.com/r/titpetric/netdata/ on unRAID 6.4.1
I'm happy to share anything needed to help diagnose this :) I didn't want to paste the entire netdata.conf! It's 10k lines haha ;)
Let me know what I can do here - I'd love to be rocking the latest and greatest :D

2018-02-08 22:05:59: charts.d: INFO: cpufreq: is disabled. Add a line with cpufreq=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).
2018-02-08 22:05:59: charts.d: INFO: example: is disabled. Add a line with example=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).
2018-02-08 22:05:59: charts.d: INFO: exim: is disabled. Add a line with exim=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).
2018-02-08 22:05:59: charts.d: INFO: hddtemp: is disabled. Add a line with hddtemp=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).
2018-02-08 22:05:59: charts.d: INFO: load_average: is disabled. Add a line with load_average=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).
2018-02-08 22:05:59: charts.d: INFO: mem_apps: is disabled. Add a line with mem_apps=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).
2018-02-08 22:05:59: charts.d: INFO: mysql: is disabled. Add a line with mysql=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).
2018-02-08 22:05:59: node.d.plugin: ERROR: Cannot read configuration file /etc/netdata/node.d.conf: ENOENT, no such file or directory '/etc/netdata/node.d.conf', using internal defaults.

2018-02-08 22:05:59: charts.d: INFO: nginx: is disabled. Add a line with nginx=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).
2018-02-08 22:05:59: charts.d: INFO: phpfpm: is disabled. Add a line with phpfpm=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).
2018-02-08 22:05:59: charts.d: INFO: postfix: is disabled. Add a line with postfix=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).
2018-02-08 22:05:59: node.d.plugin: ERROR: Cannot load module's stiebeleltron config from /etc/netdata/node.d/stiebeleltron.conf exception: Error: ENOENT, no such file or directory '/etc/netdata/node.d/stiebeleltron.conf', using internal defaults.

2018-02-08 22:05:59: charts.d: INFO: sensors: is disabled. Add a line with sensors=force in /etc/netdata/charts.d.conf to enable it (or remove the line that disables it).

Even after running docker exec -it NetdataL bash and going to /etc/netdata/ the only thing in there is an empty override folder. No .conf files to be edited...

Hello,
can you paste your complete docker run... command. Regarding second comment: Generally most of these things will end up being disabled on docker, because the applications it monitors aren't available inside docker.
Not sure if something changed upstream between 1.9 and 1.8, but it would be worth checking it out from the official docs. Since it's a minor version change, things should be complatible enough, but maybe the official release notes might give you more information.

Sure thing, please see below for both run commands. Nothing's changed between 1.8 and 1.9 on my run command, all the same dirs are accessible via docker. Only difference here is the new Netdata version.
1.8 shows CPUfreq, full sensors, etc. 1.9 misses a few things for some reason.

Docker Run 1.9 (Latest)
root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='NetdataL' --net='bridge' -e TZ="Europe/London" -e HOST_OS="unRAID" -p '29999:19999/tcp' -v '/mnt/cache/appdata/netdata_latest/':'/etc/netdata':'rw' -v '/proc':'/host/proc':'ro' -v '/sys':'/host/sys':'ro' -v '/var/run/docker.sock':'/var/run/docker.sock':'ro' --cap-add SYS_PTRACE --log-opt max-size=50m --log-opt max-file=1 'titpetric/netdata:latest'
6712533310e784ebb9c958543908253d4d6267e91ac35cc74b1b9a49d99769a1

The command finished successfully!

I'll try looking at the Netdata changelogs, see if anything sticks out. Not sure exactly what I'll be looking for yet 😛

netdata v1.9 has a new python plugin ( rewritten by @l2isbad ). It it backwards compatible though, so I can't really tell if this introduced an issue or not.
@nexusmaniac can you post this from the v1.9 container:
grep python.d /var/log/netdata/error.log

Please restart netdata before doing so, to make sure we have a fresh copy.

@ktsaou
I saw that in the changelog but because it should be backwards compatible I didn't think much of it! :)
So the command you posted doesn't work inside the container - just hangs indefinitely...
The error.log file is jut a symlink to /dev/stderr
2018-02-11 21:37:27: python.d INFO: plugin: main: Using python 2
2018-02-11 21:37:27: python.d ERROR: plugin: main: [Errno 2] No such file or directory: '/etc/netdata/python.d.conf'

2018-02-11 21:37:28: netdata ERROR : PLUGINSD[python.d] : read failed

2018-02-11 21:37:28: netdata ERROR : PLUGINSD[python.d] : '/usr/libexec/netdata/plugins.d/python.d.plugin' (pid 26) disconnected after 0 successful data collections (ENDs).

2018-02-11 21:37:28: netdata ERROR : PLUGINSD[python.d] : child pid 26 exited with code 1.

2018-02-11 21:37:28: netdata ERROR : PLUGINSD[python.d] : '/usr/libexec/netdata/plugins.d/python.d.plugin' (pid 26) exited with error code 1. Disabling it.

2018-02-11 21:37:28: netdata INFO : PLUGINSD[python.d] : thread with task id 25 finished

So I grabbed what I could from the docker logs (not entirely sure where they're coming from if not stderr
Perhaps the container isn't importing all the files correctly / permissions are messed up?
root@3468acb6a758:/usr/libexec/netdata/plugins.d# ls -lah
total 300K
drwxr-xr-x 1 root root     456 Feb 10 13:05 .
drwxr-xr-x 1 root root      62 Feb 10 13:05 ..
-rw-r--r-- 1 root root    7.3K Feb 10 13:05 README.md
-rwxr-xr-x 1 root root     110 Feb 10 13:05 alarm-email.sh
-rwxr-xr-x 1 root root     64K Feb 10 13:05 alarm-notify.sh
-rwxr-xr-x 1 root root     265 Feb 10 13:05 alarm-test.sh
-rwsr-x--- 1 root netdata  91K Feb 10 13:05 apps.plugin
-rwxr-xr-x 1 root root    5.5K Feb 10 13:05 cgroup-name.sh
-rwsr-x--- 1 root netdata  35K Feb 10 13:05 cgroup-network
-r-xr-x--- 1 root root    6.6K Feb 10 13:05 cgroup-network-helper.sh
-rwxr-xr-x 1 root root    1.2K Feb 10 13:05 charts.d.dryrun-helper.sh
-rwxr-xr-x 1 root root     20K Feb 10 13:05 charts.d.plugin
-rwxr-xr-x 1 root root    5.1K Feb 10 13:05 fping.plugin
-rw-r--r-- 1 root root    5.6K Feb 10 13:05 loopsleepms.sh.inc
-rwxr-xr-x 1 root root     11K Feb 10 13:05 node.d.plugin
-rwxr-xr-x 1 root root     13K Feb 10 13:05 python.d.plugin
-rwxr-xr-x 1 root root    6.7K Feb 10 13:05 tc-qos-helper.sh
root@3468acb6a758:/usr/libexec/netdata/plugins.d#

Just a guess on that last one 😄

hm... these logs are not what we need.
Can you run the plugin by hand inside the container?
You should use something like:
export NETDATA_HOST_PREFIX="/host"
/usr/libexec/netdata/plugins.d/python.d.plugin debug trace 1 cpufreq

Here you go 👍
root@3468acb6a758:/# export NETDATA_HOST_PREFIX="/host"
root@3468acb6a758:/# /usr/libexec/netdata/plugins.d/python.d.plugin debug trace 1 cpufreq
2018-02-11 21:51:39: python.d INFO: plugin: main: Using python 2
2018-02-11 21:51:39: python.d ERROR: plugin: main: [Errno 2] No such file or directory: '/usr/libexec/netdata/plugins.d/../../../../etc/netdata/python.d.conf'
2018-02-11 21:51:39: python.d ERROR: plugin: main: Traceback (most recent call last):
  File "/usr/libexec/netdata/plugins.d/python.d.plugin", line 19, in <module>
    from time import monotonic as time
ImportError: cannot import name monotonic

oh... this seems a package dependency problem. You are missing a package (I guess it is called monotonic https://pypi.python.org/pypi/monotonic ).

@ktsaou
It's more than a package issue (not sure the package is a blocker here, it's in a try: except: ...
I removed the try & except there and still it wouldn't run!
All I did to fix it was touch /etc/netdata/python.d.conf I'm going to restart the container to see if the dependency still causes an issue after touching the empty python.d.conf file
I believe that Netdata 1.9 expects lots of .conf's to be in /etc/netdata? This container from @titpetric has nothing in that folder 😋

From /usr/libexec/netdata/plugins.d/python.d.plugin
try:
    from time import monotonic as time
except ImportError:
    from time import time

That try & except functions perfectly 👍

Output from /usr/libexec/netdata/plugins.d/python.d.plugin debug trace 1 cpufreq
2018-02-11 22:06:55: python.d DEBUG: cpufreq: cpufreq: update => [OK] (elapsed time: 1, retries left: 60)
2018-02-11 22:06:55: python.d DEBUG: cpufreq: cpufreq: sleeping for 0.997086048126 to reach frequency of 1 sec
BEGIN cpu.cpufreq 999983
SET 'cpu0' = 1088070
SET 'cpu1' = 880198
SET 'cpu2' = 823762
SET 'cpu3' = 924000
SET 'cpu4' = 908000
SET 'cpu5' = 1046000
SET 'cpu6' = 912000
SET 'cpu7' = 1057020
END

BEGIN netdata.runtime_cpufreq 999983
SET run_time = 1
END

Just having /etc/netdata/python.d.conf fixes this issue, I expect that the container will need to include empty .conf files
Having that file there allows the web UI to render the charts!! 💯 Spot on 👍

hm... we need @titpetric for this...

TL;DR: I should install monotonic in the container? what about using python time as fallback as was suggested (is there some feature of monotonic netdata relies upon so stdlib isn't viable)?

@titpetric that's not the issue here.
The issue is the lack of .conf files in /etc/netdata my log stream is full of missing .conf files! There doesn't seem to be a requirement of them containing anything... 🤔 But best to talk with @ktsaou on what they're used for :)
The time requirement is a try/except loop which is a non-issue as per: https://github.com/titpetric/netdata/issues/64#issuecomment-364794110
TL:DR - We need .conf files correctly stored in /etc/netdata inside the container :)
Hope this helps! 😄

@ktsaou at some point, netdata didn't need any conf files and they would be "generated" when netdata would start up. Behaviour changed recently?

@nexusmaniac also if i understood correctly, if i have at least one 0 byte config in /etc/netdata, then this errors doesn't show up and you get your graphs out nicely?

@titpetric
I've never had conf files generated by your Netdata container in my /etc/netdata DIR 😄

Correct!
I have python.d.conf in /etc/netdata which is completely empty. It allows my python.d plugins to work flawlessly 👍

I just pushed a new version which issues a touch /etc/netdata/netdata.conf before running netdata. I appreciate if you could do a git pull and retry without some mounts under /etc/netdata, just to see if it works as expected after the change.
Should take about ~10 minutes or so before it's built on docker hub.

I can see that it's building on Docker hub 👍
I'll get that updated as soon as it's available and let you know!
Not sure how much impact netdata.conf will have? But I'll know soon enough 😄  Thanks for the support here everyone, been good trying to get to the bottom of this 😄

@titpetric
python.d ERROR: plugin: main: [Errno 2] No such file or directory: '/etc/netdata/python.d.conf'
Sadly not, seems that my issues with cpufreq, sensors, etc. all lie with python.d.conf
Netdata.conf doesn't seem to do anything 😢

Hey, thanks and sorry for the back and forth. Hopefully the last commit will solve the issue for you ;)

No worries! Thanks for working with me! 😎
Awesome stuff :) just looked at the commit 🎉
Guess that's this issue solved! Perfect ;)

Don't guess, test :)

Hehe yeah! I've tested ;)
Latest version works as expected 😎 cheers man!

Thank you.

wow!
@l2isbad check this. If python.d.conf is missing, python.d.plugin does not start. Ideally the plugin should still run if this file is missing. This may be a side effect of the new python.d.plugin, since the old one did run without that file.

@ktsaou at some point, netdata didn't need any conf files and they would be "generated" (basically with a list of default values) when netdata would start up. Behaviour changed recently?

This is true, however python.d.plugin uses the config files for configuring auto-detection. So, there is no auto-detection embedded in python modules - the python modules will just use whatever is described in the config files found under /etc/netdata/python.d/.

If python.d.conf is missing, python.d.plugin does not start

True
https://github.com/firehol/netdata/blob/master/plugins.d/python.d.plugin#L197-L199

https://github.com/firehol/netdata/pull/3418


Nested objects and arrays does not work after last security patch

Describe the bug and the expected behavior
With a nested schema such as
type Schema = {
  outside: Array<{ inside: Array<string> }>
}

the insert intent does not work. It silently fails and does not add anything.
Conform version
v1.1.1 and higher
Steps to Reproduce the Bug or Issue
Repro here: https://github.com/ABuffSeagull/conform-nested-bug
Clicking on the "Add Outside" works fine, but the "Add Inside" does not work.
What browsers are you seeing the problem on?
Chrome, Firefox
Screenshots or Videos
No response
Additional context
No response

Thanks for reporting the issue! This is fixed in v1.1.3.

Perfect, thank you so much! Love this library


Notifications icon isn't cleared properly when messages get read

I just got this report from a new user to the RN app:
"a day later, the app icon still thinks I have 1 notification to view (this is clearly not true)"
We should do a careful audit on the code for handling this and make sure the algorithm is correct.  Presumably we want the notification cleared whether the message is read in the app or on the web... we may want to use the unread_msgs data structure for this stuff.

I would have asked if this is Android or iOS, but I think we are completely missing the dismissal code, so it should be the same solution for both. @kunall17 what do you think about this?

Works fine on android, but on iOS it will constantly show 1 message even if several messages are received!

I'm experiencing the same issue on Android: on a thread that is more than one screen long, even if I scroll all the way to the top and all the way to the bottom, the thread still shows one unread message in the topic list.
(Android Zulip app, version 2.0.32)

@jasonaowen Thanks for report, you're talking about the UnreadNotice which shows "1 Unread message" and a button to mark all as read which is already reported here https://github.com/zulip/zulip-mobile/issues/1291
This issue was related to badge count always set to 1 in the app drawer of iOS.
And is temporarily fixed and can be closed!

I'll fix the #1291 next. Closing this.


minView not being applied

Hello
I have a datepicker like this:

However it still makes me select down to the minute.
Am I doing something wrong?

see https://github.com/dalelotts/angular-bootstrap-datetimepicker#minview

That doesn't work for me

See the demo page for examples - it is not documented as an attribute but rather a configuration option - i.e. data-datetimepicker-config="{ minView: ... }"


Displying block position can be improved

https://goo.gl/YvqDBD
In "Block Info" tab,
Instead of current "mi_col x mi_row" format, can be shown as "(mi_col, mi_row) = ($mi_col, $mi_row)"

Fixed in https://github.com/mbebenita/aomanalyzer/commit/4130dec736802570cf59ee710b68702d94341db0


add Rust compiler to reqs for windows

Btw why do we need rust ?

On windows I got an error while installing transformers, asking for the rust compiler.
But that could also be an error on my side because I used python 3.11 an maybe it was trying to build from source.

Yeah we are still flushing out 3.11 support.  Will test this out once we get 3.11 working.
Thanks for the PR.


Need help in spelling articles ;]

Sortable v1.0 — New capabilities (2014)
Sorting with the help of HTML5 Drag'n'Drop API (2013)

@dandv :pray: ;]

I have revised both articles. I have edited the new capabilities article, and haven't found anything at the other one. Anyway, since I am not a native english speaker, somebody else could check.

@romanrdgz thx


Create Dependabot Configuation to support Docker and go module updates

Enable Dependabot for Dockerfile and go.mod updates.
This will update images in Dockerfile FROM statements, and go modules.
This PR is created by a script. Please let me know if we should modify any values.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Please ignore this PR


Concurrent testing breaks snapshot assertions

Describe the bug
When using snapshot assertions and concurrent tests, I get this error:
Error: Snapshot cannot be used outside of test

Reproduction
import { describe, expect, test } from 'vitest';

describe('repro', () => {
  test.concurrent('a', async () => {
    await new Promise((resolve) => setTimeout(resolve, 1000));
    expect('foo').toMatchSnapshot();
  });

  test.concurrent('b', async () => {
    await new Promise((resolve) => setTimeout(resolve, 1000));
    expect('bar').toMatchSnapshot();
  });
});

System Info
System:
    OS: Linux 5.13 Ubuntu 21.10 21.10 (Impish Indri)
    CPU: (8) x64 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
    Memory: 723.05 MB / 31.14 GB
    Container: Yes
    Shell: 5.1.8 - /bin/bash
  Binaries:
    Node: 16.13.2 - ~/.volta/tools/image/node/16.13.2/bin/node
    Yarn: 1.22.17 - ~/.volta/tools/image/yarn/1.22.17/bin/yarn
    npm: 7.24.2 - ~/Development/NullVoxPopuli/ember-apply/node_modules/.bin/npm
  Browsers:
    Chrome: 96.0.4664.93
    Firefox: 96.0.1

### Used Package Manager

yarn

### Validations

- [X] Follow our [Code of Conduct](https://github.com/vitest-dev/vitest/blob/main/CODE_OF_CONDUCT.md)
- [X] Read the [Contributing Guidelines](https://github.com/vitest-dev/vitest/blob/main/CONTRIBUTING.md).
- [X] Read the [docs](https://vitest.dev/guide).
- [X] Check that there isn't [already an issue](https://github.com/vitest-dev/vitest/issues) that reports the same bug to avoid creating a duplicate.
- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vitest-dev/vitest/discussions) or join our [Discord Chat Server](https://chat.vitest.dev).
- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.

Yes this is the limitation of JS as you can't keep the context in async concurrent execution. I am not sure if there is a solution to that (similar to Vue's async setup: https://antfu.me/posts/async-with-composition-api). Otherwise we might need to document it

Yes this is the limitation of JS as you can't keep the context in async concurrent execution. I am not sure if there is a solution to that (similar to Vue's async setup: https://antfu.me/posts/async-with-composition-api). Otherwise we might need to document it

I think we can bind test to expect and pass it inside a context (first function argument), if the this idea will ever be accepted 👀

I think we can bind test to expect and pass it inside a context

Yes, there is a pending pr for it #900

Bumped into this while trying to migrate from jest.  Is there a workaround?

You might get some mileage on newer versions of node with AsyncLocalStorage

It will be solved by #900
Example: https://github.com/vitest-dev/vitest/pull/900/files#diff-25788667f7dde81e3ed5b45f7e3ed4a1721820d94a9c743ceaeb6a4bada228fb

It will be solved by #900
Example: https://github.com/vitest-dev/vitest/pull/900/files#diff-25788667f7dde81e3ed5b45f7e3ed4a1721820d94a9c743ceaeb6a4bada228fb

It's useful


Take angle into account for taps and propagate to children differently

Description
This is a work in progress and I'm happily taking in comments to improve it, or scrap it.
It changes the way that we propagate to children.
The events (now the different tap functions) return a boolean so that the user can choose if the event should propagate further or not.
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

Checklist:
If something is unclear, please submit the PR anyways and ask about what you thought was unclear.

[x] This branch is based on v1.0.0
[x] This PR is targeted to merge into v1.0.0 (not master or develop)
[ ] I have added an entry under [next] in CHANGELOG.md
[x] I have formatted my code with flutter format
[ ] I have made corresponding changes to the documentation
[x] I have added examples for new features in doc/examples
[ ] The continuous integration (CI) is passing

I like that children are public here) Look forward to implementing this proposal!


Reset password screen

Allow users to reset their password.
I'd propose to handle it like this:

User clicks "forgot password" on login
store a "reset_token" (uuid) in the database and maybe a reset token datetime to make it valid for like 2h
send an email (maybe using nodemailer) with an URL:  /reset-password?token=${reset_token}
user can submit a new password
backend validates token & date and updates password (don't forget to hash it)
user gets redirected to login

I guess i can do it in the next week !

KK, I should have time late evening / tomorrow. I'll keep you posted via messages / PR


Remove workspaces

As discussed with @miyconst, current implementation of workspaces does not give any clear benefits and has some disadvantages:

It still requires a HTTP request to morph between workspaces, causing a workspace to rebuild each time it is switched
There is a limitation of one workspace per app, which doesn't make any sense (https://github.com/StarcounterPrefabs/Launcher/issues/161)
Workspaces cause a lot of work to maintain bindings for data that is not currently displayed (https://github.com/StarcounterPrefabs/Launcher/issues/160)

A solution to the above problems is to remove the concept of workspaces. We might implement it again some day, but taking all of the above issues into consideration.
Workspaces are still a cool idea for future (to have side-by-side layouts for example), but this is months of work to make it proper.

Actually workspaces is really good if used correctly. Our implementation when we had only one app (integrated launcher-apps) was more or less perfect since it "cached" apps in the background and disabled auti bindings while not displayed. For more intensive client apps like organizer (gantt) and actionboards this improves speeds when switching and we need that speed.

We also need it to not loose client data when switching back and forth. (You can't store everything in the URL)

So removing workspaces would cause our applications not to work as it is designed to at the moment.

@malx122 removing workspaces does not mean removing view-state.
If your application saves JSON view-model in Session.Data then it will stay there as long as session lives.
The custom WebComponents are cached on browser level and are not imported twice. So, if a component was loaded with <link rel="import" href="/sys/tunity/tunity-gunt" /> on a page load, then it won't be loaded again when you navigate back to the page.
What exactly would break your apps? I would like to keep backward compatibility and don't face you against another major rework.

That the application saves the Json view-model is a minor detail. Just a few nonexpensive classes and all database calls that could be expensive is redone all the times anyways...
Loading and parsing webcomponents is expensive (especially on non-chrome browsers), but also not the issue I'm talking about.
Creating webcomponents can be very expensive and that is not cached if you remove the workspaces. A part from that, client specific data as scrollbar positions, open/closed aktivities in the gantt e.t.c. will be lost if you navigate from the gantt.
We have customers that only use actionboard, no problem for them,
We have customers that only use gantt, no problem for them either.
But there is also the use case that a person use the gantt to navigate and look inte different actionboards. And to need to renavigate the gantt every time you have switched to an actionboard and go back is not ok for them.

I do agree that the workspaces does not work well for the moment. But I'm quite sure there is some better solutions than scrap them. I will think about a solution tonight :)

A part from that, client specific data as scrollbar positions, open/closed aktivities in the gantt e.t.c. will be lost if you navigate from the gantt.

This is the penalty of having presentation logic, which should be kept to minimum. Thanks for bringing that point up! Of course some things (like scrollbar positions) cannot be delegated to server at all.

Creating webcomponents can be very expensive and that is not cached if you remove the workspaces.

Actually since my recent change https://github.com/StarcounterPrefabs/Launcher/commit/1c1aec7d03e6d567ecc89f4dfa666bf0156e3eac inactive workspaces are removed from DOM anyway. Did you experience any performance penalties? I didn't think of this use case and I think that I can restore it.
We went half way to remove workspaces already (with https://github.com/StarcounterPrefabs/Launcher/commit/1c1aec7d03e6d567ecc89f4dfa666bf0156e3eac), so now we can either bring them back (and make sure they are actually useful and performant) or remove them completely. Basically, the benefits need to outweigh the issues. I thought @malx122 will be on the issues side, but seems not! Please share any more thoughts.

Since we have our own version of launcher I havnt merged and tested #1c1aec7 yet. And now that I read about it I'm guessing that merge that one in is not an option either... That will most likely destroy all client data as well?

Yes, switching workspaces will destroy the presentation data of Polymer elements, because of removing them from DOM.

Our implementation when we had only one app (integrated launcher-apps) was more or less perfect since it "cached" apps in the background and disabled auti bindings while not displayed

How did you achieve disabling auto bindings with inactive workspaces?

Our "workspaces" was handled both at the server level and at the client level. So one "app" could have not just one but multiple workspaces and decide when to create, when to inactivate and when to destroy them.

The server part of that solution is actually still active in our apps. So one app could have multiple "workspace" inside its Launcher workspace. But its not used. (I was actually thinking of inactivate the auto bindings in our workspaces based on some static list in the common dll since it is shared between our apps but I havnt done it yet)

Think I have a solution that would solve some of the problems with the launcher and apps, we can talk about it tomorrow after lunch.

Fair enough! Closing this issue and moving discussion to #214.
A feature of turning off workspaces can still be added. Launcher with "single workspace" setting set to ON would just remove previous workspace from the array in C#. But this is a matter for a separate issue.


Allow keybindings to override chord keys when there is a when condition

VSCode Version: Code - Insiders 1.6.0-insider (0619ede1e469ed23fbb214eaa0377625a402ca87, 2016-09-16T08:03:24.238Z)
OS Version: Linux x64 4.4.0-31-generic, Ubuntu 16.04

Based on my testing at least on Linux, I cannot bind ctrl+k as a keybinding due to the chord keybindings. This blocks #6603 in allowing a ⌘K keybinding to clear the terminal ("when": "terminalFocus"). I think it's reasonable to allow overriding of the chords at the very least when there is a "when" condition.
Steps to Reproduce:

Define a keybinding as ctrl/cmd+k with a "when" condition
Try using it

@alexandrudima I can implement this if you find the proposal reasonable. KeybindingResolver.resolve looks like the place to do it.

I think it is doable, all the relevant logic is in KeybindingResolver. There are two maps involved, _map and _chords. When registering a chord ctrl+k ctrl+d, the _map gets an entry for ctrl+k that lets the logic know that it is a chord, plus _chords[ctrl+k] gets an entry for ctrl+d.
So far, the code assumes that if a keybinding is the beginning of a chord it cannot be a "direct" keybinding. I have found this consistent with Visual Studio, for example.
PR + tests welcome.

We're not actually going forward with this, instead we're making the cmd+k keybinding for the terminal weight more as doing it the way proposed in the issue would be a pretty radical change in how it works.

For context, I use CTRL+K for toggle comment line, and I had to manually remove ALL chord keybindings of in order to be able to use CTRL+K in editor, for my desired purpose.

@Novack- after discussing with @alexandrudima, you should not need to remove the chord keybindings as your custom keybindings should "weight more".

Woot! I just tried andd it works, thank you @Tyriar!
Is this a recent change? With Code 1.6, CTRL+K keybinding did not worked until I added new rules removing the default chords which start with CTRL+K. I can remove a lot of rules from there now :)

I think it's always worked like this


The zip in the release throws error when deployed through cloudformation

*I am not sure if this is a bug or if I am missing something. Aws wrangler cannot be imported to a function if it's a part of cloudformation template but it works if I manually upload the zip file as layer. Not sure why this is happening *

Could you please describe what you mean by "cannot be imported to a function if it's part of a cloudformation template"? Do you have sample CFN code we can look at?
As you mention, the zip file in the release is meant to be used as a Lambda layer. So as long as it's created that way, I don't foresee issues related to the use of AWS CloudFormation

@pruthvirajksuresh +1 Could you share your CFM, please? You also might find this useful: AWS::Lambda::LayerVersion.
@jaidisido Idea in regards to that - how about hosting all wrangler releases in a public S3 bucket, specifically so it's easy to create layers?

i have used cdk to generate the cfn template
the zip from the release is placed under the layer/wrangler
wrngLayer = LayerVersion(
self, 'WRNGLRLAYER',
compatible_runtimes=[_lambda.Runtime.PYTHON_3_8],
code=Code.from_asset("layer/wrangler"),
layer_version_name="aws-data-wrangler"
)
    lmbdRst = _lambda.Function(
        self, 'LambdaHandler',
        runtime=_lambda.Runtime.PYTHON_3_8,
        code=_lambda.Code.asset('lambda'),
        handler='index.handler',
        function_name=f"analytics-API-{env.value_as_string}",
        role=lambdaAPIRole,
        layers=[wrngLayer],
        timeout=core.Duration.seconds(25),
        memory_size=4096
    )

WRNGLRLAYERE7B8158C:
Type: AWS::Lambda::LayerVersion
Properties:
Content:
S3Bucket:
Ref: AssetParametersd31a438bab754f5704cca8ebef59191d10adecbbc318695d9efea699cf1fc0f4S3Bucket3F68134B
S3Key:
Fn::Join:
- ""
- - Fn::Select:
- 0
- Fn::Split:
- "||"
- Ref: AssetParametersd31a438bab754f5704cca8ebef59191d10adecbbc318695d9efea699cf1fc0f4S3VersionKeyC639FA7F
- Fn::Select:
- 1
- Fn::Split:
- "||"
- Ref: AssetParametersd31a438bab754f5704cca8ebef59191d10adecbbc318695d9efea699cf1fc0f4S3VersionKeyC639FA7F
CompatibleRuntimes:
- python3.8
LayerName: aws-data-wrangler
Metadata:
aws:cdk:path: APP-RESTAPI-STAGING/WRNGLRLAYER/Resource
aws:asset:path: asset.d31a438bab754f5704cca8ebef59191d10adecbbc318695d9efea699cf1fc0f4
aws:asset:property: Content
LambdaHandler212865DC:
Type: AWS::Lambda::Function
Properties:
Code:
S3Bucket:
Ref: AssetParametersc66f176af93cc27e59b09712e3725450b604c031bc628e495bd621c506bda578S3Bucket0B60546E
S3Key:
Fn::Join:
- ""
- - Fn::Select:
- 0
- Fn::Split:
- "||"
- Ref: AssetParametersc66f176af93cc27e59b09712e3725450b604c031bc628e495bd621c506bda578S3VersionKeyB82B22C7
- Fn::Select:
- 1
- Fn::Split:
- "||"
- Ref: AssetParametersc66f176af93cc27e59b09712e3725450b604c031bc628e495bd621c506bda578S3VersionKeyB82B22C7
Role:
Fn::GetAtt:
- lambdaAPIRole094B9077
- Arn
Environment:
Variables:
stage:
Ref: env
FunctionName:
Fn::Join:
- ""
- - analytics-API-
- Ref: env
Handler: index.handler
Layers:
- Ref: WRNGLRLAYERE7B8158C
MemorySize: 4096
Runtime: python3.8
Timeout: 25

@pruthvirajksuresh +1 Could you share your CFM, please? You also might find this useful: AWS::Lambda::LayerVersion.
@jaidisido Idea in regards to that - how about hosting all wrangler releases in a public S3 bucket, specifically so it's easy to create layers?

this would be awesome, but i am not sure if the production environment will refer to the public s3 bucket for layers

Alright, I have figured out what is your issue. By putting the zipped layer within the layer/wrangler directory and specifying code=Code.from_asset("layer/wrangler") in the LayerVersion definition, the zip gets zipped a second time! This is because the default behaviour of Code.from_asset is to zip any contents within the directory.  Sadly I don't see an option to disable this behaviour.
So I see two options:

Unzip the zip locally. Not a big fan of this if you are using version control as it would add a bunch of files. On the flip side, it allows you to enrich the layer with other components if you wish
Leverage the s3-assets construct to fist upload your zip "as is" into an S3 bucket and then reference it within the layer

As a side note (and third option) following @kukushking's suggestion, we have created a public S3 bucket holding all the public artifacts from releases. So you can also create the layer like this:
        wrangler_layer = LayerVersion(
            self,
            "wrangler-layer",
            compatible_runtimes=[Runtime.PYTHON_3_8],
            code=S3Code(
                bucket=Bucket.from_bucket_arn(
                    self,
                    "wrangler-bucket",
                    bucket_arn="arn:aws:s3:::aws-data-wrangler-public-artifacts",
                ),
                key="releases/2.7.0/awswrangler-layer-2.7.0-py3.8.zip",
            ),
            layer_version_name="aws-data-wrangler"
        )

@jaidisido thank you . i think it solves the problem (implemented the first option) . do you mind if close the issue? and thank you for creating a public artifact.


Fix association infinite loop by using time.After() and select.

Hi,
This PR attempts to fix issue https://github.com/free5gc/smf/issues/66.
It uses time.After() and select - to wait between association attempts. It is done in a similar manner as in method (keepHeartbeatTo).
I tested it and it works well in my environment (Ubuntu 20.4 VM with free5gc-compose.).

hello,
The "infinit loop" in this case is intentional, since the target UPF could go down at any time and up at any time. The code tries to restore the PFCP connection of the target UPF as soon as the UPF is up. It also tries not to generate too many alarms.
The current code assumes that "setupPfcpAssociation()" takes a few seconds. This is because the PFCP procedure involves waiting for a response. However, in practice, as you pointed out, setupPfcpAssociation() may not involve any waiting time.
So, could you please add a function to wait a few seconds only when setupPfcpAssociation() fails immediately?

Hi @YoheiKonno, when I use main branch of smf code and specify, in smfcfg, interval (per below example)
  pfcp: # the IP address of N4 interface on this SMF (PFCP)
    addr: smf.free5gc.org
    associationSetupFailedAlertInterval: 10s
    heartbeat:
      interval: 5s

than when a UPF becomes unreachable, a busy loop occurs inside ensureSetupPfcpAssociation with no sleep in-between iterations which leads to setupPfcpAssociation to always get called with no time intervals breaks. I pasted the traces in the attached issue.
The change I suggest, as you asked, waits alertInterval between re-try iteration.
Please find below traces when using PR code:
...
smf              | 2023-01-10T09:11:46.456871628Z [INFO][SMF][App] Sending PFCP Association Request to UPF[upf.free5gc.org](<IP_ADDRESS>)
smf              | 2023-01-10T09:11:46Z [WARN][LIB][PFCP] Host lookup failed: lookup upf.free5gc.org on <IP_ADDRESS>:53: no such host
smf              | 2023-01-10T09:11:46.468603366Z [INFO][SMF][PFCP] received a request that is re-sent
smf              | 2023-01-10T09:11:46.469475942Z [INFO][SMF][PFCP] received a request that is re-sent
smf              | 2023-01-10T09:11:46.47010307Z [INFO][SMF][PFCP] received a request that is re-sent
smf              | 2023-01-10T09:11:46.46992247Z [ERRO][SMF][App] Failed to setup an association with UPF[upf.free5gc.org](<IP_ADDRESS>), error:Request Transaction [9]: retry-out
smf              | 2023-01-10T09:11:46.470447346Z [ERRO][SMF][App] Wait 10s until next attempt
...

when UPF becomes reachable again:
...
smf              | 2023-01-10T09:12:46.609645485Z [INFO][SMF][App] Sending PFCP Association Request to UPF[upf.free5gc.org](<IP_ADDRESS>)
upf              | 2023-01-10T09:12:46Z [INFO][UPF][Pfcp][upf.free5gc.org:8805] handleAssociationSetupRequest
upf              | 2023-01-10T09:12:46Z [INFO][UPF][Pfcp][upf.free5gc.org:8805][rNodeID:<IP_ADDRESS>] New node
smf              | 2023-01-10T09:12:46.614980764Z [INFO][SMF][App] Received PFCP Association Setup Accepted Response from UPF[upf.free5gc.org](<IP_ADDRESS>)
...

Thanks.

After adding some traces into ensureSetupPfcpAssociation:
logger.AppLog.Errorf("Failed to setup an association with UPF%s, error:%+v", upfStr, err) is printed only once and then the for loop turns into a busy loop.
I wonder if anyone else encounters it.

Hi @aviweit,
My colleague @mariakagi found the reason why following three logs were output.
smf              | 2023-01-10T09:11:46.468603366Z [INFO][SMF][PFCP] received a request that is re-sent
smf              | 2023-01-10T09:11:46.469475942Z [INFO][SMF][PFCP] received a request that is re-sent
smf              | 2023-01-10T09:11:46.47010307Z [INFO][SMF][PFCP] received a request that is re-sent

It is bacause upNodeID.ResolveNodeIdToIp() returns zero value (net.IPv4Zero) when wrong FQDN is specified. So, at udp.SendPfcpRequest(message, addr), smf sends a request to <IP_ADDRESS>, and somehow smf oneself seems to receive it.
To fix it, could you add a checking code to udp.SendPfcpRequest(message, addr) as following?
func SendPfcpRequest(sndMsg *pfcp.Message, addr *net.UDPAddr) (rsvMsg *pfcpUdp.Message, err error) {
	if addr.IP.Equal(net.IPv4zero) {                                     // ADD
		return nil, errors.New("no destination IP address is specified")  // ADD
	}                                                                   // ADD
	return Server.WriteRequestTo(sndMsg, addr)
}

Hi @YoheiKonno , @mariakagi ,

It is bacause upNodeID.ResolveNodeIdToIp() returns zero value (net.IPv4Zero) when wrong FQDN is specified. So, at udp.SendPfcpRequest(message, addr), smf sends a request to <IP_ADDRESS>, and somehow smf oneself seems to receive it.

would it be OK to fix it under a different PR?
Thanks.

Hi @YoheiKonno , @mariakagi , I have added SendPfcpRequest fix. It seems to work well in my environment.

Thanks. I would like to ask if this PR can be merged.


Low accuracy on FPGA

Hello,
I tried generating bitstreams through cnn.tcl for mnist classification and mean single convolution:

There are no errors in the console apart from few critical clock skew warnings:

But, when I use the generated bitstreams, results are very poor:

Mean Single convolution

MNIST Classifcation - low FPGA accuracy

Please guide me what am I doing wrong. This is very crucial as I need to accelerate my own cnn for which I am using your work as a reference.
Thanks

The only reason I can imagine is that your clock frequency has been set too high, it should not be higher than 200MHz.

Thanks for replying @ZhaoqxCN

The only reason I can imagine is that your clock frequency has been set too high, it should not be higher than 200MHz.

I checked the clock of zynq PS, it is set as 50MHz (range is 30-60) similar to what is there in PYNQ-CNN.

Any other hints?


Documents in a folder should be shared with its group by default

From uservoice:

When you create a document inside of a folder, the document correctly receives the visibility of the folder as the default visibility. But, the documents in the folder are not shared with the group by default. It should have the same sharing settings as that of the folder.

Testing
Note: The ~Inherit folder invitations?~ represents the fact that I have decided not to inherit invitations (made on the folder) to the content created / uploaded on that folder. The permissions are inherited (editor, viewer, manager) but the invitations are not.

[x] Collabdoc

[x] Users only
[x] Users and invitations
[ ] ~Inherit folder invitations?~

[x] Collabsheet

[x] Users only
[x] Users and invitations
[ ] ~Inherit folder invitations?~

[x] Single Link

[x] Users only
[x] Users and invitations
[ ] ~Inherit folder invitations?~

[x] Multiple Links

[x] Users only
[x] Users and invitations
[ ] ~Inherit folder invitations?~

[x] Single Upload

[x] Users only
[x] Users and invitations
[ ] ~Inherit folder invitations?~

[x] Multiple uploads

[x] Users only
[x] Users and invitations
[ ] ~Inherit folder invitations?~

Hi !
I made a pull request here : https://github.com/oaeproject/Hilary/pull/1548
It works but I broke the unit tests of the module "oae-content" ... Can you review the changes before I repair the unit test.

Hmm ... almost all (in oae-content) :

17 passing (33s)
170 failing

I didn't ran the other tests

Uhh.. that's goint to take some work then. But before that, I think we need to redesign the solution to this.
The current behaviour is content being shared with the group as read-only, correct? All the group members can see the document, but just as a "viewer", not as an editor. The problem lies on the fact that they are never made editors even if they have "manage" access on the folder. So, with that in mind, here's what we need to to:

We need a way to make it clear to the user that he can inherit the writing permissions when creating a document, and make it default behaviour. I'd suggest something like this:

Then when the user clicks "Update", the following modal box should display a slightly different message such as

This document will be added to My library and Folder shared with some people. It will be private and only visible to the people and groups you share it with but will respect the high-level folder permissions it's being created in.

If we create a document using this new behaviour (checkbox checked), we need to make sure we "merge" the default "private" permissions with the ones we get from the folder (especially the "manage" ones).

Finally, if we go to "Manage access" on the newly created document, we need to make sure the merged permissions are correctly shown there.

Does this make sense to you @ClaireLozano ? Tell me your thoughts.

Okay, I have some questions :

We agree that "visibility" and "share with" are two different things right ?
So "inherit permission" will just apply the same folder visibility to the new document and have no effects on members ?

Do we propose to the user to inherit or not the members of the document ? Or we do it by default ?

what I've done is that all viewers of the folder became viewers of the new document and same for managers but that means that it will never have editors so ... we can say that all viewers of the folder became editors (?)

The current behaviour is content being shared with the group as read-only, correct? All the group members can see the document, but just as a "viewer", not as an editor.

That's weird because yes they can view the document but the document isn't shared with them, that's what we call indirect roles (?)

The feature is ready to be reviewed.
So ...

I added the inherit visibility (front)
by default all the members of the folder will be members of the content
and in the case of collabdoc, all the viewers of the folder (folder have only viewers or managers) will be editors of the content.

It seems correct to you ?

Hello,
Sorry I took so long to reply.
I think I may have not expressed myself very well but in the end I think you got it :) The new setting isn't about visibility, it's about permissions, so I think that maybe we could do something slightly different on the frontend, to make it simple. That would be to include on the Shared with section all the users the parent folder is currently being shared with, like so:

So the "default" would be as you said, but the user would still have the ability to create a "private" document like before if he/she removes those users before creating it.
What do you think?
Other than this visual change, I agree with your statements above 👍

Oooh ok I get it ! And yes I think it's the best thing to do :)

Done ;) The feature is ready to be reviewed !

Will do, on Monday!

Hi Claire,
I've just tested the feature and the "Inherit folder visibility" is still there, apparently. I don't think it fits anymore, given the solution we designed for this issue.
Apart from that, I don't think this is working as expected. Let me give you an example:

UserA creates folderA
UserA adds UserB as manager of that folder
UserA creates a document inside that folder and UserB sees it, which is correct
UserA creates a document inside that folder but removes UserB from the "Shared with..." field. Creates is and UserB still sees it (can edit).

☝ this is not expected beaviour. If we're displaying the users the parent folder is currently shared with, then we must adapt the permissions on the document we're creating accordingly. Right now, the user is getting "can edit" by default no matter what the user picks in the "shared with" field.
Do you confirm this behaviour?

I'm cancelling this issue. I'll provide a short explanation below:
This issue makes sense. Currently, if user A creates a folder, shares it with user B (as manager) and then creates a document inside it, user B will hold the viewer role on that document. In theory, according to general user hierarchy understanding and expectations, if user B is a manager of the folder, he should also have manager role on all folder contents for as long as the folder exists. So this would be a good fix. This line of thought could also be applied to invitations.
This approach is implemented on PR https://github.com/oaeproject/3akai-ux/pull/4235 but I never got to fix tests, because I have since come to the conclusion this issue is superseded, since folders are going to be converted into labels (tags) on the next major version (and redesign) of OAE.
If you check the wiki page for details on files vs folders.


Loading and rendering/auto-animating GIFs

What problem does this solve or what need does it fill?
It solves:

Having to create sprite sheets and doing the math/setting up animation manually in source code
Having to export both a sprite sheet and a GIF
Having one format for multiple use cases
a) look at assets directory in repo and see all animations natively (browser/file explorer/locally if editor has support)
b) share with friends/team via messaging/email/issues/social media/etc.. (most everything supports GIF)
c) having a centralized index of GIFs and understand the behavior of the animations
d) being able to share on a website your GIF(s) (aka now the source of truth) so others will know how to work with it without having to write any JS to animate a spritesheet

What solution would you like?
Be able to load a GIF. Potentially set animation rate/GIF size but not required for MVP.
You could do:
use bevy::prelude::*;

use crate::entities::*;

const PLAYER_IDLE: &str = "player_idle.gif";
const PLAYER_LEFT: &str = "player_left.gif";
const PLAYER_RIGHT: &str = "player_right.gif";
const PLAYER_UP: &str = "player_up.gif";
const PLAYER_DOWN: &str = "player_down.gif";

pub fn player_setup(
    mut commands: Commands,
    asset_server: Res<AssetServer>,
    mut texture_atlases: ResMut<Assets<TextureAtlas>>,
) {
    let texture_handle = asset_server.load_gifs(
        PLAYER_IDLE,
        PLAYER_LEFT,
        PLAYER_RIGHT,
        PLAYER_UP,
        PLAYER_DOWN,
    ); // or provide a vec of asset names?

    let texture_atlas = TextureAtlas::from_gifs(texture_handle);
    let texture_atlas_handle = texture_atlases.add(texture_atlas);

    let player = Player::new();

    commands.spawn_bundle(OrthographicCameraBundle::new_2d());
    commands
        .spawn_bundle(SpriteSheetBundle {
            texture_atlas: texture_atlas_handle,
            transform: Transform::from_scale(Vec3::splat(1.0)),
            ..Default::default()
        })
        .insert(Timer::from_seconds(0.1, true))
        .insert(player);
}

Removing the need for inserting Vec values for the sprite sheet. Now you can load all GIFs and just swap to the needed one depending on values in your entity.
use bevy::prelude::*;

use crate::entities::*;

pub fn animate_player(
    time: Res<Time>,
    mut query: Query<(&mut Timer, &mut TextureAtlasGifs, &mut Player)>,
) {
    for (mut timer, mut gifs, mut player) in query.iter_mut() {
        timer.tick(time.delta());

        if player.idle {
            player.gif_index = 0;
        } else if player.left {
           player.gif_index = 1;
        } else if player.right {
            player.gif_index = 2;
        } else if player.up {
            player.gif_index = 3;
        } else if player.down {
            player.gif_index = 4;
        }

        if timer.finished() {
            gifs.index = player.gif_index;
        }
    }
}

No more keeping track of animation rows/columns like so:
        /*
            [
                0,1,2,3,4, <- idle
                5,6,7,8,9, <- left
                10,11,12,13,14, <- right
                15,16,17,18,19 <- up
                20,21,22,23,24, <- down
            ]
        */

I would treat this as pseudo code but this should outline "the dream".
Let's make making video games more fun and ideas easier to share.
I guess the index would have to check for a cache hit/miss. If cache hit, continue to go through GIF until end and restart. Miss, start from beginning.

If an easier MVP would just be loading GIFs in general I get that.
The logic would still be on the user but being able to load a GIF would be a huge win.

I understand sprite sheets have been around forever but GIFs have an advantage IMHO.
What alternative(s) have you considered?
Exporting both formats and dealing with the complexities in code as the sprite sheet grows or animations change in frames.
Additional context
Can be discussed if needed.

If setting an animation would be possible, then it should probably be optional, since the frames in GIFs come with their own timestamp and could therefore be used as default values.
According to the spec frames are always timed in 1/100th of a second, unless the value is 0.


Cleanup duplicated watches in gardenlet (1)

How to categorize this PR?

/area scalability
/kind cleanup
What this PR does / why we need it:
This PR cleans up usages of the generated informers (client-go style) in gardenlet's ControllerInstallation and Seed controllers.
It replaces them with informers from the controller-runtime cache to prevent duplicated watches if the CachedRuntimeClients feature gate is enabled.
To ease the transition, the PR first refactors the controllers to the reconcile.Reconciler interface.
(similar to https://github.com/gardener/gardener/pull/3658 ff., https://github.com/gardener/gardener/pull/3746 ff.)
Which issue(s) this PR fixes:
Part of https://github.com/gardener/gardener/issues/2822, https://github.com/gardener/gardener/issues/4251, https://github.com/gardener/gardener/issues/1648
Special notes for your reviewer:
The PR includes some more cleanups and refactorings along the way (see dedicated commits and commit messages):

rework the seed lease controller
rework the seed controller unit tests to make them simpler and use a fake client instead of mocks
unify some client/clientset parameters in favor of c-r clients

There will be one more PR performing the same refactorings/cleanups for the last big chunk of code: the shoot controller and operation package.
/squash
Release note:

NONE

/assign

Do we want to have a second opinion on this PR or should we continue with the next one?

I'm good, not sure if somebody else plans to take a look, but given that there wasn't too much reaction yet, I'm fine with proceeding.

Ok, then let's merge this one now, so that we can include both PRs in the next release and validate them early on (cc @BeckerMax).


ts to wasm

Will there be a tool to compile ts files to wasm files?

Probably not, but you can try https://github.com/dcodeIO/AssemblyScript or https://github.com/01alchemist/TurboScript

Nope, please use the search functionality on our issue tracker in the future. See #9202 and #15837.

As a heads up, I just found this today if you're interested: https://github.com/MaxGraey/Assembleash

Automatically closing this issue for housekeeping purposes. The issue labels indicate that it is unactionable at the moment or has already been addressed.


Custom CSS/JS is unusable in Windows

I downloaded DevDocs.Setup.0.3.0-ia32.exe from release.
I installed in Windows 10 15063, but cannot find Custom CSS/JS like this

Yes, there is no menu in Windows systems. Able to replicate in Windows 10 x64 running latest

@Positive07 Thanks for your reply.

Closed accidentaly @starsriver? The issue is relevant and should be fixed

Hmm, weird that I can see the menu, maybe something went wrong in the packaged version

Oh this issue is pretty dumb! The 0.3.0 release has autoHideMenu: true in the window configuration so you need to press Alt to see the menu.
Note that master doesn't have autoHideMenu: true by default anymore, which is better!

@Positive07 thanks for telling me that 👍🏻
v0.4.0 should fix this.

@Positive07  this not a bug really😂, thank you👍🏻


⚠ Bofrost.at has degraded performance

In 514a6b2, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2855 ms

Resolved: Bofrost.at performance has improved in dabc0f0 after 32 minutes.


add stages / subworkflows via controller (will enable remote authoring)

Coverage decreased (-0.2%) to 87.743% when pulling b4a3691dc11656add9f31bf0dd19710e77d89083 on add_via_controller into 886201fd37ac7f04bf89a5c50d4cbb9f26c1ba57 on master.


Improve user interaction with map layers

Currently the interface replicates the former interface by simply dropping a pin where the user clicks. However, now that everything is a vector we can improve this experience by dynamically highlighting the entire feature(s) the user is interacting with.
All layers should highlight on mouseover, emphasize further on click. When layers are layered (i.e. displaying more than one at a time) highlight the top layer on mouseover, but emphasize all below on click.
Improve click snapping to features, primary lines and fossil collections.

I like this!

Highlighting geologic map polygons on mouseover isn't a great experience. Because of the detailed nature of the polygons, it feels extremely spastic.