CosmosDB provider

Please consider creating entity framework core providers for CosmosDB

We should consider investing on this. Keeping it in the backlog for now because we don't have short term plans for it.

We are going to start investigating this in 2.1. We have a lot of work to do to figure out what the goals should be for EF Core support for CosmosDB in the short and long term, e.g. from answering basic questions like what value EF Core support should bring to the table to which exact APIs of CosmosDB we should support.

This issue encompasses #1142, so I think #1142 can be marked as a duplicate.

I would love to see support doe take, skip foe paging as at present Cosmos doesn't server side support paging as I understand it

@MisinformedDNA from our initial discussions with Cosmos DB, we are not likely going to target the Table Storage API. We could close #1142 because we are not doing it, but it is not necessarily encompassed.

Now that EF core 2.0 has been released. Hopefully this can get considered for 2.1 now <3
Been looking forward to it since 2014 when the original #1035 was created

@divega Cosmos DB is essentially four different APIs to do different things. I would expect either a single Cosmos DB provider to handle all four APIs (seemingly this issue) or four separate Cosmos DB providers, one for each of Cosmos DB's APIs. The latter seems more reusable, composable and maintainable.

This will be an interesting feature. Just curious, any planned date for 2.1 release of EF? Will be helpful for new projects with more interesting use cases.

@satyajit-behera The EF Core roadmap follows the ASP.NET Core roadmap, which you can see here: https://github.com/aspnet/Home/wiki/Roadmap (or maybe the .NET Core roadmap??? https://github.com/dotnet/core/blob/master/roadmap.md )

Neither of those roadmaps acknowledges the existence of Cosmos DB. Does this mean there is no plan for EF to support Cosmos DB?

@VagueGit - This is roadmap of EFCore https://github.com/aspnet/EntityFrameworkCore/wiki/roadmap which outlines which features EF Core team is going to implement. Release cycle of EF Core is part of large org with ASP.NET & .NET. Timeline for release (not the features included in EF Core for release) would be found in their roadmap (in the links posted by @ErikEJ )

What about migrations? Are you going to support it too?

@rosieks - Since CosmosDb stores schema-less JSON documents, there are not schema changes in code model which needs to be scaffolded in a migration and applied to the database. You can continue using the same database to store changed model.
What are the scenarios where you believe we would need migrations support? We would be happy to analyze and see what kind of support would be good for such scenario (migrations or may be something else)

I agree that CosmosDb is schema less but it doesn't mean there is no schema at all - we still have model in the code that changes. I thought about support for changes in model. For example when I rename class or property I would like to update existing documents in database. The same if I change type or introduce new field - I would like to provide some logic to convert/fill it.

@rosieks - That is useful scenario though it is data migration (rather than schema migration). At present the support for data migration is very less in EF Core in general. So it would be kind of a new feature altogether. I believe, such data migration/manipulation can be done in cosmos db using stored procedures. Priority of it happening in intial preview is very low.

We should create a new issue for supporting data migration. Personally, I think it is a valuable feature, but it isn't essential to the initial provider.

Data Migration is vital for Cosmos. Here's why:
Because it's a json store and schema-less (sort of) you tend to denormalize your data.  I.e. you'll duplicate a lot of data to eliminate the need for joins across tables.
What happens often is that you'll discover that you'll need a new field on existing data and need to add that field to every record. So migrations should allow for the addition of the new field AND the population of that field automatically. Typically this would be a series of queries that gets the values and then iterates over the records and updates the values and then saves them back.
Please keep this in mind while developing the migration scenarios as this is a standard process that must happen all of the time.

@JohnGalt1717 @rosieks Filed #11099 to track data migration related work for Cosmos Db.

Loving the potential for an EF provider here. Currently investigating GraphQL + CosmosDB and I think it'd be nice to use EF's programming paradigm rather than Cosmos DB's SQL or Linq providers. Struggling a bit getting graphql-net playing nicely with relations and show forth. Swapping in an EF provider rather than the Linq provider could be my answer as it's intrinsically know the relationships/navigation properties to follow and translate.
Question, how will nesting be handled/annotated?
For instance, take a blog data model... If you wanted to take advantage of document db and store a Post's Comments in the same document (nested under a property called "Comments" rather than off in another collection linked by "foreign keys"), how would you achieve that?
Or... if you just had a User with properties like Profile and Settings which were themselves POCOs that logically grouped other properties (Profile.Name, Profile.Age, Settings.Notifications.ReceiveEmails, Settings.ShowRealName) and should be stored in the same document in Cosmos.
Right now, the way EF works these would automatically become navigation properties, right?

@benmccallum, @natemcmaster and I hacked something up ages ago: https://github.com/anpete/GrefQL

how will nesting be handled?

@benmccallum the idea is to use ownership to model this. When working with relational databases owned entities works as a relationship with stronger semantics (owned entities cannot exist on their own, and we set up eager loading by convention on them). With document databases, ownership will be used to signal that the relationship is mapped within the same document/aggregate rather than an FK.
Currently we support owned references (similar to EF6 complex types), and we are missing owned collections (tracked as #8172).

Thanks @divega, was poking around the source code thus far and looks awesome. 😄
Looks like Cosmos DB doesn't support cross-collection joins, there's talk of cross-document joins which might help, but I guess this means any navigational properties (FKs) would always be lazy-loaded? Could this be an n+1 nightmare? I'm still getting my head around doc dbs but it seems like putting commonly queried data into a single doc, even if that involves duplication, is the way to go. I'm just struggling with scenarios where nested collections could involve thousands of items as this apparently hits document size limits and drastically affects perf. I guess you need to move them out to their own collection and live with an n+1 scenario, ensuring you have aggregate data like counts, etc. being tallied on the parent doc.
@anpete, nice, will take a look now, thanks!

@JohnGalt1717 Not yet, but it is a priority for us to get to that point soon.

@ajcvickers Thanks, good news. I'm starting a new project that is huge and will be long running (and will be a while before it's in production) and I'd rather be using the Entity Framework approach than DocumentDbClient. I also hope that you'll have things like FirstOrDefaultAsync etc. working because the DocumentDbClient is BRUTALLY basic with what it supports.

Do you guys have a ETA on when the "Cosmos DB provider" will be available? Thanks!

And is it possible to compile a working-ish cosmosdb provider yet? Dying here!

Any intention to support the Graph setup via Gremlin queries?

A question. Will you be building a default ExecutionStrategy for the cosmos provider in a similar way to SQL Server's SqlServerRetryingExecutionStrategy or do we need to write that ourselves?

@JonPSmith  I think it is already built into the Cosmos SDK - but of course it would be nice to be able to configure the options https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.documents.client.connectionpolicy.retryoptions?view=azure-dotnet

Thanks @ErikEJ,
I had a look at the actual code and there is a CosmosExecutionStrategy. so the answer to my question, yes there is a ExecutionStrategy for the cosmos provider but there isn't an extension like SQL Server has. Here is how you add the strategy.
var builder = new DbContextOptionsBuilder<NoSqlDbContext>()
    .UseCosmos(
        "urltocosmos",
        "somelongkey",
        "databaseName",
        options => options.ExecutionStrategy(c => new CosmosExecutionStrategy(c)));

@JonPSmith Cosmos will use a retrying execution strategy by default, so the user doesn't need to specify one unless they need to change the way it behaves.

@AndriySvyryd. Thanks for letting me know about that as I am writing an article on EF Core and Cosmos DB and was going to put the ExecutionStrategy on my example
PS. It makes sense that retries on with Cosmos as it doesn't support transactions, so there is no down side by not having retries on.

@AndriySvyryd What about retries for 412? Will we support ETag concurrency in the cosmos DB provider?
I'm trying to see how I can implement it myself, but I'm a bit pestered with the fact that you could have partial saved state in the db (if, e.g. 3 changes are sent to the DB, but the 3th got a 412 due to different ETag).
Without worrying about that case, would it be a good idea to throw a dbconcurrency exception from the cosmosclient, when we received a 412? And then catch this in the callers code by using something like Polly? I would then only need to add a shadow prop for the ETag value, but it would be a begin to implement concurrency mechanisms. What are your thoughts?

@Mortana89 We'll likely throw a DbConcurrencyException, but it would be up to the caller to decide how it should be handled - like resending updates for all entity types overriding any changes or querying the updated data, determining which ETags are mismatched and merging the changes.

Hi everyone! I'm using the CosmosDB EF Core Provider 2.2.4 and here's the strange issue - EF Core seems to ignore the [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] attribute when I try to write null in Cosmos.
So the next time I try to deserialize it, I've got Unable to cast object of type 'Newtonsoft.Json.Linq.JValue' to type 'Newtonsoft.Json.Linq.JObject'. It seems like when I deserialize the null value to some class model, it's crashing.
So the questions -

how can I force EF Core to ignore nulls when I write into Cosmos?

how can I deserialize object with one of the properties set to null?

@Bassist067 The Cosmos provider currently doesn't handle any attributes. Properties of nullable type generally accept nulls by default.
You are using an early preview version of the provider, please try 3.0.0-preview5 and if you are still running into this open a new issue.

All the feature work planned for 3.0 has been completed.
Open new issues for any further questions.

Few questions that popped-up after creating a simple CRUD REST API with CosmosDB:

How to implement concurrency handling with ETags?
Does the provider take the ETag on the model into account during updates or should I build the ETag comparison myself?

I've added the _etag to my model and it is returned when querying for entities, so far so good.
When I, for example, add a new record through the API the _etag property is not set on the object after calling Add() and SaveChanges(). I kind of expect this to work the same way as it works with the Id property.
Is there a way to get the ETag when adding a new record without retrieving the same record again?

@richardrobberse CosmosDB provider isn't even remotely close for being used in a realworld use case. Maybe .net 5.

@richardrobberse CosmosDB provider isn't even remotely close for being used in a realworld use case. Maybe .net 5.

That's quite a statement

@richardrobberse Look at all of the basics it doesn't support (try sub arrays of objects the CosmosDb way, I dare you) and tell me that I'm wrong.  You can't take any marginally complex CosmosDb database with multiple collections and make it work in EF Core 3.1 as it stands today. The basics (like concurrency) aren't there.

@JohnGalt1717 I'm not in need of anything complex, I just need a simple CRUD API so I think I'll manage once the concurrency gets added (hopefully in 3.1.2)
If you have other suggestions, please let me know!

@richardrobberse Just use direct CosmosDb table api with linq until they get it working right and fully support child lists. (i.e. right now you can't even do Contact.Addresses properly with it, so your basic CRUD will probably fail too)

EDIT: apparently the ETag concurrency token was implemented recently by this PR: #19581 @jviau @AndriySvyryd can you guys shine some light on how to effectively use the ETag concurrency token? Thanks in advance!
Few questions that popped-up after creating a simple CRUD REST API with CosmosDB:

How to implement concurrency handling with ETags?
Does the provider take the ETag on the model into account during updates or should I build the ETag comparison myself?
I've added the _etag to my model and it is returned when querying for entities, so far so good.
When I, for example, add a new record through the API the _etag property is not set on the object after calling Add() and SaveChanges(). I kind of expect this to work the same way as it works with the Id property.
Is there a way to get the ETag when adding a new record without retrieving the same record again?

When it is released, Cosmos ETag concurrency will be handled automatically when a property, shadow or concrete, is mapped to the JSON property _etag and is marked as a concurrency token. Anything mapped to "_etag" must be either string, or have a string value converter. There are helpers for this:
entityBuilder.UseEtagConcurrency(); // adds a shadow property for "_etag" as a concurrency token
entityBuilder.Property(x => x.MyProperty).SetEtagConcurrency(); // maps to "_etag" json property, sets concurrency token

There is no convention for automatically detecting properties named "etag" or anything similar and making it the concurrency token, it needs to be set explicitly in the fluent API for now.
When an entity has an etag concurrency token, it will automatically be included in the ItemRequestOptions.IfMatch for all applicable requests to cosmos (insert, replace, delete), so you will start seeing DbUpdateConcurrencyException on conflicts during SaveChanges.


Extension: Cannot show code action(context menu) in the problem view

VSCode Version: 1.27.1
OS Version: Windows 10

Steps to Reproduce:
We want to provide this UI for https://code.visualstudio.com/updates/v1_26#_problems-panel-quick-fixes
for Java language.

We have return CodeAction list to the vscode client and it can be showed on the UI.
The diagnostic of CodeAction is associated with the original diagnostic

However, there is no action on the problem view, which is different from typescript. Anything special I need to handle before enable this feature?
protocol data:

[Info  - 10:57:53 AM] Sep 13, 2018 10:57:53 AM >> document/codeAction
[Trace - 10:57:53 AM] Received response 'textDocument/codeAction - (73)' in 21ms.
Result: [
    {
        "title": "Add default serial version ID",
        "kind": "quickfix",
        "diagnostics": [
            {
                "range": {
                    "start": {
                        "line": 32,
                        "character": 13
                    },
                    "end": {
                        "line": 32,
                        "character": 23
                    }
                },
                "severity": 2,
                "code": "536871008",
                "source": "Java",
                "message": "The serializable class BaseEntity does not declare a static final serialVersionUID field of type long"
            }
        ],
        "command": {
            "title": "Add default serial version ID",
            "command": "java.apply.workspaceEdit",
            "arguments": [
                {
                    "changes": {
                        "file:///D:/Workspace/examples/spring-petclinic/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java": [
                            {
                                "range": {
                                    "start": {
                                        "line": 33,
                                        "character": 4
                                    },
                                    "end": {
                                        "line": 33,
                                        "character": 4
                                    }
                                },
                                "newText": "private static final long "
                            },
                            {
                                "range": {
                                    "start": {
                                        "line": 33,
                                        "character": 4
                                    },
                                    "end": {
                                        "line": 33,
                                        "character": 4
                                    }
                                },
                                "newText": "serialVersionUID = "
                            },
                            {
                                "range": {
                                    "start": {
                                        "line": 33,
                                        "character": 4
                                    },
                                    "end": {
                                        "line": 33,
                                        "character": 4
                                    }
                                },
                                "newText": "1L"
                            },
                            {
                                "range": {
                                    "start": {
                                        "line": 33,
                                        "character": 4
                                    },
                                    "end": {
                                        "line": 33,
                                        "character": 4
                                    }
                                },
                                "newText": ";"
                            },
                            {
                                "range": {
                                    "start": {
                                        "line": 33,
                                        "character": 4
                                    },
                                    "end": {
                                        "line": 33,
                                        "character": 4
                                    }
                                },
                                "newText": "\n\t"
                            }
                        ]
                    }
                }
            ]
        }
    },
    {
        "title": "Add generated serial version ID",
        "kind": "quickfix",
        "diagnostics": [
            {
                "range": {
                    "start": {
                        "line": 32,
                        "character": 13
                    },
                    "end": {
                        "line": 32,
                        "character": 23
                    }
                },
                "severity": 2,
                "code": "536871008",
                "source": "Java",
                "message": "The serializable class BaseEntity does not declare a static final serialVersionUID field of type long"
            }
        ],
        "command": {
            "title": "Add generated serial version ID",
            "command": "java.apply.workspaceEdit",
            "arguments": [
                {
                    "changes": {
                        "file:///D:/Workspace/examples/spring-petclinic/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java": [
                            {
                                "range": {
                                    "start": {
                                        "line": 33,
                                        "character": 4
                                    },
                                    "end": {
                                        "line": 33,
                                        "character": 4
                                    }
                                },
                                "newText": "private static final long "
                            },
                            {
                                "range": {
                                    "start": {
                                        "line": 33,
                                        "character": 4
                                    },
                                    "end": {
                                        "line": 33,
                                        "character": 4
                                    }
                                },
                                "newText": "serialVersionUID = -3856744164839586177L"
                            },
                            {
                                "range": {
                                    "start": {
                                        "line": 33,
                                        "character": 4
                                    },
                                    "end": {
                                        "line": 33,
                                        "character": 4
                                    }
                                },
                                "newText": ";"
                            },
                            {
                                "range": {
                                    "start": {
                                        "line": 33,
                                        "character": 4
                                    },
                                    "end": {
                                        "line": 33,
                                        "character": 4
                                    }
                                },
                                "newText": "\n\t"
                            }
                        ]
                    }
                }
            ]
        }
    }
]

@yaohaizh So you say that context menu on the problem entry is not showing the quick fixes?

@sandy081 Right. The context menu is also empty without code actions. Only the default ones "Copy" & "Copy Message"

Fixed.


Clarify which node version should be used

Trying to install dependencies using npm install, having some trouble with node-gyp using last node stable version 16.14.2

Saw that there is a file .nvmrc which says to use node 10.10.0. But truffle requires version 12.0.0 or higher.
Does anyone manage to do npm install && truffle compile after cloning this repo? If so is it possible to share which node version is required to achieve that? Thanks!

@foufrix you can check the Dockerfile to see how the CI does it: this is based on node 10. Would be an easy upgrade, though. PRs welcome :)

Since travis is disabled I manually tested https://github.com/humanprotocol/eth-kvstore/pull/3 according the dockerfile and it worked great


Release plans

There were some updates posted on our discord before but it is useful to share the plan in the repo, too:
The release plan
We are working on 2 milestones currently.

v0.32.0 with sdk v0.45.x support, releases/v0.3x branch
v0.40.0 with sdk v0.47.x support, main branch

The next regular release will be v0.32.0 with some important updates for IBC "on packet receive" logic and  CosmWasm v1.3 v1.2.3 that will take some time.
While we make progress on the sdk 47 path, we plan to tag more release candidates to enable other teams to start integration and testing early. There is still a bigger packet of work with v1.gov support.
As you may have noticed, there are some gabs between v0.32 and v0.40. Our versioning model does not support breaking changes well, so we have some numbers reserved for releases on the v0.45.x path.
What comes next
It is hard to maintain 2 versions in parallel with a small team. The plan is to focus on the sdk v0.47 path for new features after our v0.32.0. Bugfixes and security updates will be backported to the sdk v0.45 path for some time.
Please join the discussion

I have tagged v0.40.0-rc.1. Some highlights:

Redesign IBC on packet recv error/ result.Err handling #1353
Add wasm command to support v1 gov proposals #1326
Bump sdk to v0.47.1 (#1302)
Bump Wasmvm from 1.2.1 to 1.2.3 #1344

See the full diff

I have updated the target WasmVm version to v1.2.3 due to some unexpected issues with the integration of the wasmer version. This will unblock the v0.32 release and also reduces the changes and therefore risk that come with v0.40.
We plan to release another wasmd version (v0.33) with wasmvm v1.3 on the sdk 45 series as maintenance release. New features go to the sdk 47 series and may only be backported on specific request.


Markdown styling is ignored

This library ignores if text is italicized or in bold on c.ai's site. I've also noticed that interaction with new lines is finnicky.
To put this issue into perspective, if the character says "Haha!
I get up." on the site, it shows up like this when printed: "Haha!

I get up."

Thanks for watching, I'll try to find the tags responsible for text formatting and insert them into the response

Markdown is available in version 0.4.0


unrecognized authorization error  k8s-extension

Related command

az k8s-extension create
Describe the bug

I am trying to install AzureML extensions to AKS using this URL.
https://learn.microsoft.com/en-us/azure/machine-learning/how-to-deploy-kubernetes-extension?tabs=deploy-extension-with-cli#azure-machine-learning-extension-deployment---cli-examples-and-azure-portal
I get however this error,
Error Message
Request failed to https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerService/managedclusters/<CLUSTER_NAME>/extensionaddons/test-extention?api-version=2021-03-01. Error code: Forbidden. Reason: Forbidden.{"error":{"code":"AuthorizationFailed","message":"The client '<CLIENT_ID>' with object id '<CLIENT_ID>' does not have authorization to perform action 'Microsoft.ContainerService/managedclusters/extensionaddons/read' over scope '/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ContainerService/managedclusters/test-cluster/extensionaddons/azureml' or the scope is invalid. If access was recently granted, please refresh your credentials."}}

To Reproduce

Run
az extension update -n k8s-extension
az k8s-extension create --name azureml --extension-type Microsoft.AzureML.Kubernetes --cluster-name CLUSTER_NAME --resource-group RESOURCE_GROUP --cluster-type managedClusters --config enableTraining=True enableInference=True allowInsecureConnections=True inferenceRouterServiceType=LoadBalancer inferenceRouterHA=False
Expected behavior
Install the azureml extension
Environment summary

az version                                                                                ─╯
{
  "azure-cli": "2.45.0",
  "azure-cli-core": "2.45.0",
  "azure-cli-telemetry": "1.0.8",
  "extensions": {
    "account": "0.2.5",
    "aks-preview": "0.5.131",
    "azure-devops": "0.26.0",
    "k8s-extension": "1.4.0",
  }
}

Additional context

Related existing issue: https://github.com/Azure/azure-cli-extensions/issues/5144
But created one here as this one is for v2

route to CXP team

@danielvargasbm I am not able to reproduce the issue and the AzureML extension is getting installed correctly.  Can you please try -

Re-register Microsoft.KubernetesConfiguration to get rid of the Forbidden error
Register Microsoft.ContainerService/AKS-ExtensionManager
Please refer to Register the KubernetesConfiguration service provider for registration steps. Thanks.

After re-registering, and updating k8s-extension the error persists. Any hints?
# az provider list --query "[?contains(namespace,'Microsoft.KubernetesConfiguration')]" -o table
Namespace                          RegistrationState    RegistrationPolicy
---------------------------------  -------------------  --------------------
Microsoft.KubernetesConfiguration  Registered           RegistrationRequired


Re-factor lattice graph for better usability

The following problems are noticed on the graph page in the OS web app -

For graphs with number of nodes > ~40, entirety of the graph is not visible in one screen.
In situations where the entirety of the graph is not visible in one screen, the option to 'Zoom out' and the 'fit to screen' does not seem to work.
For graphs with number of nodes > ~40, the edge length on select portions of the graph is too long. This forces the graph to be spread out un-duly either length wise or height wise.

The following objectives are desired -

The above problems should be addressed.
Enable all the nodes of a graph to be visibly on one screen at one time. Irrespective of the size of each node, it is sufficient to enable users to zoom in as needed.

Note - A reference graph structure can be kedro-viz

Please add your planning poker estimate with ZenHub @Prasy12

The following are potential approaches to re-factor this with varying timelines, risks & complexities -
Option 1 -
Dagre.Ranker
react-flow-renderer
Option 2 -
Tweak Rank/Node/Edge seperation & Coordinates
Assign rank manually
Option 3 -
Dagre + graphlib
React flow + ElkJS
Option 4 -
Replace React-flow & Dagre
Kedro-Viz as a stand alone component

@santoshkumarradha - Are there any other features/tweaks/problems beyond the above ones that you were also expecting to be resolved?

This covers it !


feat: eventemitter types

this requires a npm package release, right?

@bumi I deployed one immediately after I merged it.
@pavanjoshi914 looking again I think we want to return Promise<void> instead of this.

@rolznz ok, thanks. (then the package.json is old in master)


client.launch

so when you decompile minecraft the folder which the eclipse project is in (minecraft) isnt the same folder name that the client.launch want which is (Minecraft Client). i am getting tired of changing Minecraft Client to minecraft

Please do not open useless issues.


Select Folder To Trust Is Buggy For Remotehub

Testing #125023.

.. does not always work
I cannot select /hediet/vscode-drawio/

@alexr00 @eamodio issue with the extension or the picker?

Yeah, this is an issue with the simple file dialog. I talked to @alexr00 about it a while ago, but I forgot to open an issue to track it.
Basically we need a way to "anchor" the dialog to a root.

The bug is that there shouldn't be a ".." to go back in the picker. Then, once that's been chosen everything gets messed up.


Change Footer Text

Please tick all applicable boxes.

[Y ] I am using Python 3.5 or higher (run python --version on the command line)
[Y] I have followed the official guides to install the bot for my system
[Y ] I have updated my dependencies to the latest version using the appropriate update script

Which version are you using?

[Y ] The latest master version (1.9.7)
[ ] The latest review version

What type of issue are you creating?

[ ] Bug
[ ] Feature request
[Y] Question

Description of issue
Is it possible to change the footer of embeds to say what we like instead of 'Just-Some-Bots/MusicBot (1.9.7)'
Steps to reproduce

type a command

Log file
Please attach your MusicBot log file (located at logs/musicbot.log) to this issue. You can do so by dragging and dropping the file here. If you do not include your log file, you WILL be asked to provide one.
`[66.876649857] 2018-06-27 07:45:56,948 - INFO - launcher: Starting sanity checks
[67.871809006] 2018-06-27 07:45:56,949 - INFO - launcher: Checking for Python 3.5+
[69.868564606] 2018-06-27 07:45:56,951 - INFO - launcher: Checking console encoding
[70.367813110] 2018-06-27 07:45:56,952 - INFO - launcher: Setting console encoding to UTF-8
[70.367813110] 2018-06-27 07:45:56,952 - INFO - launcher: Ensuring we're in the right environment
[71.865320206] 2018-06-27 07:45:56,953 - INFO - launcher: Adding local bins/ folder to path
[72.865009308] 2018-06-27 07:45:56,954 - INFO - launcher: Required checks passed.
[75.359582901] 2018-06-27 07:45:56,957 - INFO - launcher: Optional checks passed.
[81.846237183] 2018-06-27 07:45:56,963 - INFO - launcher: Moving old musicbot log
######################### PRE-RUN SANITY CHECKS PASSED #########################
[1.6604070663452148] 2018-06-27 07:45:58,542 - WARNING - musicbot.config | In config.py::MainThread(7944), line 112 in run_checks: i18n file does not exist. Trying to fallback to config/i18n/en.json.
[1.6604070663452148] 2018-06-27 07:45:58,542 - INFO - musicbot.config | In config.py::MainThread(7944), line 123 in run_checks: Using i18n: config/i18n/en.json
[1.6629021167755127] 2018-06-27 07:45:58,545 - DEBUG - musicbot.json | In json.py::MainThread(7944), line 8 in init: Init JSON obj with config/i18n/en.json
[1.8560438156127930] 2018-06-27 07:45:58,738 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 227 in _setup_logging: Set logging level to INFO
[1.8560438156127930] 2018-06-27 07:45:58,738 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 84 in init: Starting MusicBot 1.9.7
[1.8570418357849121] 2018-06-27 07:45:58,739 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 90 in init: Loaded autoplaylist with 2 entries
[2.0038387775421143] 2018-06-27 07:45:58,885 - DEBUG - musicbot.spotify | In spotify.py::MainThread(7944), line 70 in get_token: Created a new access token: {'access_token': 'BQBZ5xZaWhVfsH1yXIfY4Mjaa1oOvlVqYurOFGiWJu2K6YMI-iI9XpwAjcyWUf9t8HEin7toQc8DjaFEaOo', 'token_type': 'Bearer', 'expires_in': 3600, 'scope': '', 'expires_at':<PHONE_NUMBER>}
[2.0043392181396484] 2018-06-27 07:45:58,886 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 115 in init: Authenticated with Spotify successfully using client ID and secret.
[4.7195994853973389] 2018-06-27 07:46:01,601 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 1074 in on_ready: Connection established, ready to go.
[4.7201046943664551] 2018-06-27 07:46:01,602 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 339 in _cache_app_info: Caching app info
[5.0433034896850586] 2018-06-27 07:46:01,925 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 889 in _scheck_ensure_env: Ensuring data folders exist
[5.0452806949615479] 2018-06-27 07:46:01,927 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 905 in _scheck_server_permissions: Checking server permissions
[5.0452806949615479] 2018-06-27 07:46:01,927 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 909 in _scheck_autoplaylist: Auditing autoplaylist
[5.0452806949615479] 2018-06-27 07:46:01,927 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 913 in _scheck_configs: Validating config
[5.0452806949615479] 2018-06-27 07:46:01,927 - DEBUG - musicbot.config | In config.py::MainThread(7944), line 212 in async_validate: Validating options...
[5.0452806949615479] 2018-06-27 07:46:01,927 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 916 in _scheck_configs: Validating permissions config
[5.0457990169525146] 2018-06-27 07:46:01,927 - DEBUG - musicbot.permissions | In permissions.py::MainThread(7944), line 64 in async_validate: Validating permissions...
[5.0457990169525146] 2018-06-27 07:46:01,927 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 1091 in on_ready: Connected:<PHONE_NUMBER>30491138/Darren#2516
[5.0467789173126221] 2018-06-27 07:46:01,928 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 1099 in on_ready: Owner:<PHONE_NUMBER>29244928/Tim#1822
[5.0473074913024902] 2018-06-27 07:46:01,929 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 1102 in on_ready: Server List:
[5.0478248596191406] 2018-06-27 07:46:01,929 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 1105 in on_ready:  - Tristan's Island
[5.0483307838439941] 2018-06-27 07:46:01,930 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 1138 in on_ready: Bound to text channels:
[5.0488262176513672] 2018-06-27 07:46:01,930 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 1139 in :  - Tristan's Island/music
[5.0498189926147461] 2018-06-27 07:46:01,931 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 1164 in on_ready: Autojoining voice chanels:
[5.0502762794494629] 2018-06-27 07:46:01,932 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 1165 in :  - Tristan's Island/Music
[5.0512783527374268] 2018-06-27 07:46:01,933 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 281 in _join_startup_channels: Attempting to join Tristan's Island/Music
[5.0517778396606445] 2018-06-27 07:46:01,933 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 452 in get_voice_client: Connection attempt 1 to Music
[5.0517778396606445] 2018-06-27 07:46:01,933 - VOICEDEBUG - musicbot.bot | In bot.py::MainThread(7944), line 391 in join_voice_channel: (join_voice_channel) creating futures
[5.0522751808166504] 2018-06-27 07:46:01,934 - VOICEDEBUG - musicbot.bot | In bot.py::MainThread(7944), line 397 in join_voice_channel: (join_voice_channel) setting voice state
[5.0527889728546143] 2018-06-27 07:46:01,934 - VOICEDEBUG - musicbot.bot | In bot.py::MainThread(7944), line 400 in join_voice_channel: (join_voice_channel) waiting for session id
[5.1672110557556152] 2018-06-27 07:46:02,049 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 2926 in on_voice_state_update: Resumed voice connection to Tristan's Island/Music
[5.1677057743072510] 2018-06-27 07:46:02,049 - VOICEDEBUG - musicbot.bot | In bot.py::MainThread(7944), line 2938 in on_voice_state_update: Voice state update for<PHONE_NUMBER>30491138/Darren#2516 on Tristan's Island/Music -> [RESUME, CONNECT]
[5.1681895256042480] 2018-06-27 07:46:02,050 - VOICEDEBUG - musicbot.bot | In bot.py::MainThread(7944), line 404 in join_voice_channel: (join_voice_channel) waiting for voice data
[5.3663430213928223] 2018-06-27 07:46:02,248 - VOICEDEBUG - musicbot.bot | In bot.py::MainThread(7944), line 418 in join_voice_channel: (join_voice_channel) connecting...
[5.5882642269134521] 2018-06-27 07:46:02,470 - VOICEDEBUG - musicbot.bot | In bot.py::MainThread(7944), line 430 in join_voice_channel: (join_voice_channel) connection successful
[5.5887620449066162] 2018-06-27 07:46:02,470 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 478 in get_voice_client: Connected in 0.5s
[5.5887620449066162] 2018-06-27 07:46:02,470 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 479 in get_voice_client: Connected to Tristan's Island/Music
[5.5897574424743652] 2018-06-27 07:46:02,471 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 849 in deserialize_queue: Deserializing queue for<PHONE_NUMBER>02823937
[5.7494809627532959] 2018-06-27 07:46:02,631 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 570 in get_player: Created player via deserialization for server<PHONE_NUMBER>02823937 with 1 entries
[5.7494809627532959] 2018-06-27 07:46:02,631 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 297 in join_startup_channels: Joined Tristan's Island/Music
[5.7504787445068359] 2018-06-27 07:46:02,632 - VOICEDEBUG - musicbot.player | In player.py::MainThread(7944), line 373 in websocket_check: Starting websocket check loop for Tristan's Island
[5.7509727478027344] 2018-06-27 07:46:02,633 - DEBUG - musicbot.entry | In entry.py::MainThread(7944), line 54 in get_ready_future: Created future for audio_cache\youtube-v_B3qkp4nO4-George_Ezra-_Shotgun_Lyric_Video.webm
[5.7509727478027344] 2018-06-27 07:46:02,633 - FFMPEG - musicbot.player | In player.py::MainThread(7944), line 330 in play: Creating player with options: -nostdin -vn audio_cache\youtube-v_B3qkp4nO4-George_Ezra-_Shotgun_Lyric_Video.webm
[5.7559483051300049] 2018-06-27 07:46:02,638 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 825 in serialize_queue: Serializing queue for<PHONE_NUMBER>02823937
[34.9627871513366699] 2018-06-27 07:46:31,844 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 2734 in on_message:<PHONE_NUMBER>39804672/Lauren#9115: !play familiar Liam payne
[35.5741751194000244] 2018-06-27 07:46:32,456 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 1517 in cmd_play: {'_type': 'url', 'url': 'ytsearch:familiar Liam payne', 'ie_key': None, 'extractor': 'generic', 'webpage_url': 'familiar Liam payne', 'webpage_url_basename': 'familiar Liam payne', 'extractor_key': 'Generic'}
[39.4991540908813477] 2018-06-27 07:46:36,381 - DEBUG - musicbot.entry | In entry.py::MainThread(7944), line 54 in get_ready_future: Created future for None
[39.5006320476531982] 2018-06-27 07:46:36,382 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 825 in serialize_queue: Serializing queue for<PHONE_NUMBER>02823937
[39.5081179141998291] 2018-06-27 07:46:36,390 - INFO - musicbot.entry | In entry.py::MainThread(7944), line 220 in _really_download: Download started: https://www.youtube.com/watch?v=oWw1BcFhk-k
[41.3645594120025635] 2018-06-27 07:46:38,246 - INFO - musicbot.entry | In entry.py::MainThread(7944), line 230 in really_download: Download complete: https://www.youtube.com/watch?v=oWw1BcFhk-k
[208.8971381187438965] 2018-06-27 07:49:25,779 - DEBUG - musicbot.entry | In entry.py::MainThread(7944), line 54 in get_ready_future: Created future for audio_cache\youtube-oWw1BcFhk-k-Liam_Payne_J_Balvin-_Familiar_Official_Video.webm
[208.8971381187438965] 2018-06-27 07:49:25,779 - FFMPEG - musicbot.player | In player.py::MainThread(7944), line 330 in play: Creating player with options: -nostdin -vn audio_cache\youtube-oWw1BcFhk-k-Liam_Payne_J_Balvin-_Familiar_Official_Video.webm
[208.9036266803741455] 2018-06-27 07:49:25,785 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 825 in serialize_queue: Serializing queue for<PHONE_NUMBER>02823937
[208.9111125469207764] 2018-06-27 07:49:25,793 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 825 in serialize_queue: Serializing queue for<PHONE_NUMBER>02823937
[221.9219329357147217] 2018-06-27 07:49:38,804 - VOICEDEBUG - musicbot.bot | In bot.py::MainThread(7944), line 2938 in on_voice_state_update: Voice state update for<PHONE_NUMBER>39804672/Lauren#9115 on Tristan's Island/Music -> [LEAVE, DISCONNECT]
[221.9224321842193604] 2018-06-27 07:49:38,804 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 2949 in on_voice_state_update:<PHONE_NUMBER>39804672/Lauren#9115 has left Tristan's Island/Music
[244.9748270511627197] 2018-06-27 07:50:01,856 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 2734 in on_message:<PHONE_NUMBER>29244928/Tim#1822: !play party on the west coast
[245.1958303451538086] 2018-06-27 07:50:02,077 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 1517 in cmd_play: {'_type': 'url', 'url': 'ytsearch:party on the west coast', 'ie_key': None, 'extractor': 'generic', 'webpage_url': 'party on the west coast', 'webpage_url_basename': 'party on the west coast', 'extractor_key': 'Generic'}
[249.2281699180603027] 2018-06-27 07:50:06,110 - DEBUG - musicbot.entry | In entry.py::MainThread(7944), line 54 in get_ready_future: Created future for None
[249.2301661968231201] 2018-06-27 07:50:06,112 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 825 in serialize_queue: Serializing queue for<PHONE_NUMBER>02823937
[249.2446382045745850] 2018-06-27 07:50:06,126 - INFO - musicbot.entry | In entry.py::MainThread(7944), line 220 in _really_download: Download started: https://www.youtube.com/watch?v=mVEdpMnOQPs
[250.3463582992553711] 2018-06-27 07:50:07,228 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 2734 in on_message:<PHONE_NUMBER>29244928/Tim#1822: !skip
[250.3658215999603271] 2018-06-27 07:50:07,247 - DEBUG - musicbot.entry | In entry.py::MainThread(7944), line 54 in get_ready_future: Created future for None
[250.3658215999603271] 2018-06-27 07:50:07,247 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 679 in on_player_finished_playing: No content in current autoplaylist. Filling with new music...
[251.3183052539825439] 2018-06-27 07:50:08,200 - INFO - musicbot.entry | In entry.py::MainThread(7944), line 230 in _really_download: Download complete: https://www.youtube.com/watch?v=mVEdpMnOQPs
[251.3230314254760742] 2018-06-27 07:50:08,205 - FFMPEG - musicbot.player | In player.py::MainThread(7944), line 330 in play: Creating player with options: -nostdin -vn audio_cache\youtube-mVEdpMnOQPs-Matoma_Faith_Evans_The_Notorious_B.I.G.-_Party_On_The_West_Coast_feat._Snoop_Dogg.webm
[251.3280200958251953] 2018-06-27 07:50:08,210 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 825 in serialize_queue: Serializing queue for<PHONE_NUMBER>02823937
[252.6851108074188232] 2018-06-27 07:50:09,567 - DEBUG - musicbot.entry | In entry.py::MainThread(7944), line 54 in get_ready_future: Created future for None
[252.6876075267791748] 2018-06-27 07:50:09,569 - INFO - musicbot.entry | In entry.py::MainThread(7944), line 196 in download: Download cached: https://www.youtube.com/watch?v=v_B3qkp4nO4
[307.9649806022644043] 2018-06-27 07:51:04,847 - INFO - musicbot.bot | In bot.py::MainThread(7944), line 2734 in on_message:<PHONE_NUMBER>29244928/Tim#1822: !help
[484.4094438552856445] 2018-06-27 07:54:01,291 - DEBUG - musicbot.entry | In entry.py::MainThread(7944), line 54 in get_ready_future: Created future for audio_cache\youtube-v_B3qkp4nO4-George_Ezra-_Shotgun_Lyric_Video.webm
[484.4099273681640625] 2018-06-27 07:54:01,292 - FFMPEG - musicbot.player | In player.py::MainThread(7944), line 330 in play: Creating player with options: -nostdin -vn audio_cache\youtube-v_B3qkp4nO4-George_Ezra-_Shotgun_Lyric_Video.webm
[484.4139204025268555] 2018-06-27 07:54:01,296 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 825 in serialize_queue: Serializing queue for<PHONE_NUMBER>02823937
[484.4219050407409668] 2018-06-27 07:54:01,304 - DEBUG - musicbot.bot | In bot.py::MainThread(7944), line 825 in serialize_queue: Serializing queue for<PHONE_NUMBER>02823937
`

The bot is open source and licensed under MIT which means you can modify it, but we’re not here to give you help with doing so. This server is for help setting up and running the bot. We will not help you with modifying it or with errors that occur by modifying it.

To actually answer your question, no, not without modifying the bot.

Ok, thanks
Sent from Mail for Windows 10
From: Conner May
Sent: 27 June 2018 17:57
To: Just-Some-Bots/MusicBot
Cc: Inspectiver; Author
Subject: Re: [Just-Some-Bots/MusicBot] Change Footer Text (#1650)
To actually answer your question, no, not without modifying the bot.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Deprecations List

Kind of issue

[x] Feature
[ ] Bug
[ ] Design
[ ] Other, namely:

Description
Allow users to visit a page which shows all deprecated icons in one place. Perhaps with a version filter. Doesn't need to be on main navigation, but a URL like wasm.simpleicons.org/deprecations would be nice!

Check it at https://wasm.simpleicons.org/deprecations @adamrusted


Nullreference Exception when trying to start without data

Im trying to start the LibPostalConsole example application without the data argument (because I can't find the data actually), but when it gets to
var response = libpostal.LibpostalParseAddress(query, new LibpostalAddressParserOptions());
The response object is null, and thus throws a nullreference exception in the next line.
What am I doing wrong? Or is it impossible to run without the data files?

You need the data files to run the tool. I see that the files are no longer at the ../data URL the README states, I'll update that. In the meantime, follow libpostal's original procedure for acquiring the data:
https://github.com/openvenues/libpostal#data-files

Okay, so maybe the console app should complain instead of actually trying to run, but anyway, I got it working by compiling on WSL and that gave me the data files


Add baseline language server.

This adds a basic language server, based on the dummy language
server in common/lsp.
The basic language server keeps track of the file content
with EditTextBuffer, this adds a corresponding family of
classes lsp-parse-buffer.{h,cc}, tied to the first with event
listeners, that updates an internal state with parsed and linted
options, to be used by the services on top of that.
The parse buffers are note directly tested in unit-tests
(they are essentially just delegating to well-tested
verible internals), but are thoroughly covered by the
verible-verilog-ls_test.sh.
Signed-off-by: Henner Zeller<EMAIL_ADDRESS>

Codecov Report

Merging #998 (7a7d096) into master (70933e3) will increase coverage by 0.01%.
The diff coverage is 95.50%.

@@            Coverage Diff             @@
##           master     #998      +/-   ##
==========================================
+ Coverage   92.76%   92.78%   +0.01%
==========================================
  Files         325      328       +3
  Lines       21116    21207      +91
==========================================
+ Hits        19589    19676      +87
- Misses       1527     1531       +4

Impacted Files
Coverage Δ

verilog/tools/ls/lsp-parse-buffer.cc
92.50% <92.50%> (ø)

verilog/tools/ls/verilog_ls.cc
97.77% <97.77%> (ø)

verilog/tools/ls/lsp-parse-buffer.h
100.00% <100.00%> (ø)

common/lsp/lsp-text-buffer.h
100.00% <0.00%> (ø)

common/lsp/message-stream-splitter.h
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

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

it looks like a lot of lines, but the language server and its test is mostly the same as the one in common/lsp


Attempt to index local "L" (a nil value)

I'm trying to run the script on a CraftOS terminal but I am getting the error referenced in the title on line 278 in the minimized file. I downloaded it using wget on the terminal. I'm not entirely sure why this error occurred as L definitely exists on that line. Perhaps there is something else going on?

It seems like you're calling ecnet.wrap(modem) with modem being nil. If you used modem = peripheral.find("modem") then this probably means that there are no modems attached to the computer.
I'm surprised that CraftOS-PC even works with this, last time I checked it failed on transforming tables into entropy on the startup phase.
Recently I've been reworking the entire application and internal primitives, so work on this version is pretty much nonexistent in favor of the newer API, though that takes time. I thought that I had released a newer version but it seems like it got stuck somewhere and is sitting there untouched in the develop branch.


Assets

I want to use the assets you used in Typescript, do you have any experience with this? If so, can you make a tutorial? If not, is there a tutorial or starters guide for working with your game?

The game us writen in C# not typescript


Complete Security Matrix and Threat Model

Need to complete security matrix and threat model prior to release.

I've completed the security matrix spreadsheet and emailed it to @jerryelk


o3r->Get() with specific path

o3R->Set(someJson) works fine for partial configurations but Get-function gives an error:
std::vector<std::string> path = {"ports", "port0"};
auto state = o3R->Get(path);
throws: Unknown error 104012: JSON Path not valid
I have a head connected at port 0, ifm3d 1.4.3, firmware 1.0.14

so vectorstd::string is for different sections in the json and not for the json path. Ok got it, thanks


Does not support self attestation

The following error occurred when using MacBook TouchID as a authenticator.
Error: Server responed with error. The message is: packed attestation: self attestation not implemented, please open a GitHub issue.

Looks like fido2-lib doesn't support self-attestation.So we can not use TouchID as a authenticator.

I believe this was fixed - can you re-test?

@JamesCullum
Thank you for your reply.
I tried this. But it didn't seem to be fixed.
SELF Attestation is used by the authenticators that don’t have “x5c” and “ecdaaKeyId.

It used by the authenticators that don’t have memory to store batch certificate and key pair. If attStmt missing “x5c” and “ecdaaKeyId”, then it is a SELF(SURROGATE) attestation.
https://herrjemand.medium.com/verifying-fido2-packed-attestation-a067a9b2facd#6081

However, the code below doesn't seem to explain what to do in the above case.
https://github.com/webauthn-open-source/fido2-lib/blob/6ab981a91912303ecefe65cee3e03eb2b6c1968f/lib/attestations/packed.js#L78-L88
Can you tell me which commit fixed it?
I am very interested in this project and would like to contribute.

Hey @kg0r0 thank you for the feedback and testing! There were many commits in the meantime, so I wanted to make sure this is not part of anything that happened in between.
It would be highly appreciated if you could contribute this part - I will have to look up what the best way is to test this.

The spec refers to steps to verify if x5c is not present. https://w3c.github.io/webauthn/#sctn-packed-attestation. This express package does have an implementation: https://github.com/strangerlabs/webauthn/blob/master/src/Webauthn.js#L417, which this package is based off of the fido alliance demo. Though said demo is missing self attestation, tpm, etc.

Can you contribute this @agmcleod ?

@JamesCullum i have it working with attestation for touchid on my mac, i just haven't been able to get the login (authentication assertion) working yet. Not sure if it's something in the library or something i've missed in my own application code.
Essentially the userHandle in the credential object on the frontend is the 32 byte array buffer that i passed down when the credential was created in the registration process. Looking at the OWASP example project, they compare the credential ID. However for my case the credId is a 117 byte buffer. Im wondering if there's a separate value i need to store, but im not seeing where the user id is captured in the credentials data during registration.

I think thats the typical FIDO flow anyways, isn't it? Quite certain the OWASP example does that as well. Thanks for the PR, let's continue there 👍


read space-delimited table with spaces in the values

@dkapitan
Do you know a good fix to read this kind of text file as a table:
peildatum  categorie            groepering                    records beroepen rectypen geotypen
17-03-2020 01 - Totalen         Peildatum                      163042     2633        3        4
17-03-2020 02 - Recordtype      ErvaringsBeroep                 47248     2405        1        4
17-03-2020 02 - Recordtype      Vacature                        93626     2077        1        1
17-03-2020 02 - Recordtype      WensBeroep                      22168     1881        1        4
...
...
...

This is a pakbon provided by uwv with the actual csv file, and Michel mentioned it is a good idea to load as well, to validate the data.
Using pd.read_table(delim_whitespace=True) has issues with the values in the 2nd column (categorie), creating a multiindex:

It's a small issue, and I can "custom-fix" it, but I thought I'd check if you know a good general solution here.

I think this is a fixed width file. pandas.read_fwf should do the trick

Nice, 10x!
On Wed, May 26, 2021, 19:21 Daniel Kapitan @.***> wrote:

I think this is a fixed width file. pandas.read_fwf should do the trick
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dataverbinders/nl-open-data/issues/104#issuecomment-848963631,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AICEW6EGBN3D6EMDYOZXRBDTPUUZBANCNFSM45SNFCLA
.


Can't use layout and the render method at the same time.

I'm trying to make a website in the same vein that Stasis website, but as I expect having multiple pages I need to use a layout. The layout is ignore currently and it seems to be caused by the render line:
@readme = render('../README.md')

After reviewing the code, I'm not sure this is an actual issue. I've replaced the use of render by directly calling the markdown preprocessor.


Tests pass with failed assertion in external call

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (09d53c2 2022-03-31T00:32:45.902442+00:00)
What command(s) is the bug in?
forge test
Operating System
macOS (M1)
Describe the bug
Tests are passing even though assertion fails

How to reproduce
Run  forge test -vv with the following test contract:
contract TestMain is DSTest {

    TestUtil util = new TestUtil();

    function testInternalCall() public {
        shouldFailInternal();
    }

    function shouldFailInternal() public {
        assertTrue(false);
    }

    function testExternalCall() public {
        util.shouldFailExternal();
    }
}

contract TestUtil is DSTest {
    function shouldFailExternal() public {
        assertTrue(false);
    }
}

Expected Result
Both tests should fail
Actual Result
Only the test where the assertion fails in an internal call fails. Test where assertion fails in external call passes.
Severity
This is likely a high sev bug. Code bases with complex tests are likely to refactor their testing into multiple contracts. This bug can cause tests to fail silently.

This is not a bug - assertTrue(false) does not revert, it just sets failed = true in the contract. We only check failed on test contracts, not the contracts that it itself deployed.
You should:

use inheritance to get around this, or
have your TestUtil contract revert, or
override failed

I don't think iterating over all members of the test contract to check failed on every address is something we want to do - it's expensive and likely to produce other weird behavior. This is also not how DappTools behaves

related: https://github.com/dapphub/dapptools/issues/768

Yeah we could have a specific address / storage slot which we treat as the global?

https://github.com/dapphub/ds-test/pull/30
implementing a fix upstream that should fix this


[HOLD for payment 2023-03-21] Validate string form fields for html

Problem
As noted in this GH: https://github.com/Expensify/App/issues/12268 , we were allowing users to submit workspace names with html tags. However, for most of these string form fields, we strip the html/xml tags in our WAF input rules. So even though we allow users to submit strings with tags in them, we filter them out without letting the user know and try to save the stripped-string on the php side.
cc @flodnv
Two examples I've found:

[x] Workspace name. Addressing here: https://github.com/Expensify/App/pull/13978
[ ] First and last name in DisplayNamePage.js

I'm sure there are a lot of others. Lets find them and do the following

[ ] Make sure we have check on the php side
[ ] Check them for html on the app client side
[ ] Fix and test

Action Preformed

Go to Settings -> Profile
Add a string with html tags like <b> </b>
Verify that its stripped without any warning
https://recordit.co/TTr47jOQSR

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01ac69cf8741f82a09
Upwork Job ID:<PHONE_NUMBER>495436288
Last Price Increase: 2023-01-26

List of instances

LegalNamePage.js -- legalFirstName and legalLastName would filter out html

AddressPage.js -- addressStreet, addressCity, and addressState would filter html

DisplayNamePage.js

AddDebitCardPage.js

IdentityForm.js

CloseAccountPage.js -- This input rule for "mesage" is ANYTHING so html is fine

Bug0 Triage Checklist
Note: see this SO for more information.

[ ] The "bug" is actually a bug
[ ] The bug is not a duplicate report of an existing GH.

If it is, close the GH and add any novel details to the original GH instead

[ ] The bug is reproducible, following the reproduction steps.

[ ] If the GH doesn’t have steps to reliably reproduce the bug and you figure it out, then please add them.
[ ] If you’re unable to reproduce the bug, add the Needs reproduction label.
[ ] Comment on the issue outlining the steps you took to try to reproduce the bug, your results and tag the issue reporter and the Applause QA member who created the issue. Ask them to clarify reproduction steps and/or to check the reproduction steps again. Close issue.

[ ] The GH template is filled out as fully as possible

The GH body and title are clear (ie. could an external contributor understand it and work on it?)

[ ] The GH was created by an Expensify employee or a QA tester
[ ] If the bug is an OldDot issue, you should decide whether it is widespread enough to justify fixing or it is better to wait for reunification. If it’s better to wait, close the GH & provide this justification
[ ] If there's a link to Slack, check the discussion to see if we decided not to fix it
[ ] Decide if the GH should be resolved by an External contributor or Internal engineer, add the appropriate label

@eVoloshchak, @ctkochan22, @greg-schroeder Still overdue 6 days?! Let's take care of this!

@eVoloshchak, @ctkochan22, @greg-schroeder Still overdue 6 days?! Let's take care of this!

Should be able to get to this week, lets bring down to a weekly? Are we allowed to do that for WAQ issues?

@eVoloshchak @ctkochan22 @greg-schroeder this issue was created 2 weeks ago. Are we close to a solution? Let's make sure we're treating this as a top priority. Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks!

Working on this week

@eVoloshchak @ctkochan22 @greg-schroeder this issue is now 3 weeks old. There is one more week left before this issue breaks WAQ. What needs to happen to get a PR in review this week? Please create a thread in #expensify-open-source to discuss. Thanks!

Updated instances where we would unknowningly filter out html. However, there are quite a few instances where we wouldn't do that. So embedding that into TextInput would not make sense

Honestly, why don't we just disallow HTML everywhere, and allow it on a case by case basis? Where would it even need to be allowed?

So far its just passwords

So if we wanted to try and validate for HTML "everywhere" we can start in several places:

We can add html validation in each component that has a form component. Like here. Pretty much every place we have a form, we have a validate method in that component
We can add it to the validate method inside Form.js component. So we'll run it on each input, then run the additional validations passed as a prop to the component. Link to form component
We can add it to the TextInput component. We'd access the TextInput's validate component using inputRefs

I think in principal, it makes sense to put it in TextInput. But I also think it would be simplest to add it to the validate method in the form component.
cc @marcaaron

Posted question in slack for more input

Getting a few comments. Will wait until EOD monday to move on the agreed solution

Slack discussion: https://expensify.slack.com/archives/C01GTK53T8Q/p1676596415700269
Seems like the majority feel like #2 is the best option. Which is to add an input validation in the Form component's validate() method. This method runs any additional validations passed to them as a prop. And it would be easy to add validation here as well.
@marcaaron also suggested an alternate proposal of simply sanitizing the input in the Form component upon submission.

Drew up a GH as kind of an idea of my approach. Let me know your thoughts cc @marcaaron

Copy: "Html tags are not allowed"
Spanish: "No se permiten etiquetas HTML"

@tgolen the WIP PR was assigned to you, so we'd love your thoughts too. Original discussion here: https://expensify.slack.com/archives/C01GTK53T8Q/p1676596415700269

Looks like we are finalizing on solution #2 with additional thoughts by Tim. WIP is out but I think I need it to specifically address TextInput

So we want the error message to be more generic than "Html tags are not allowed" -- discussion
How about: Invalid character

Triggered auto assignment to @rosegrech (Waiting for copy), see https://stackoverflow.com/c/expensify/questions/7025/ for more details.

specifc error message is great.

Invalid character

should work great!

PR updated, waiting for review

Going to ask @tgolen to either take over this issue or find someone

@eVoloshchak, @greg-schroeder, @rosegrech Eep! 4 days overdue now. Issues have feelings too...

Not overdue, PR is waiting to be merged

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.2.83-3 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/15315

If no regressions arise, payment will be issued on 2023-03-21. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@eVoloshchak] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@eVoloshchak] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@eVoloshchak] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@greg-schroeder] Determine if we should create a regression test for the bug.
[ ] [@eVoloshchak] If we decide to create a regression test for the bug, please propose the regression test steps to the appropriate location to ensure the same bug will not reach production again.
[ ] [@greg-schroeder] Review the proposed regression test steps and location.
[ ] [@greg-schroeder] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Looks like something related to react-navigation may have been mentioned in this issue discussion.
As a reminder, please make sure that all proposals are not workarounds and that any and all attempt to fix the issue holistically have been made before proceeding with a solution. Proposals to change our DeprecatedCustomActions.js files should not be accepted.
Feel free to drop a note in #expensify-open-source with any questions.

Apologies, I was out of the office - taking care of this now


Remove pinning of fog gem versions

Pinning the version results in a version conflict with
bosh_cli_plugin_micro which prevents the command gem install bosh-bootstrap from installing the latest version

Thanks. This was necessary in the past. Thanks for removing.


[FEATURE] EventStreamResponse optimization

Requirements
When multiple flags are updated simultaneously flagd sends multiple configuration_change events with the following structure:
{
  "type": "configuration_change",
  "data": {
    "type": "delete",
    "source": "file:config/samples/example_flags.json",
    "flagKey": "myBoolFlag"
  }
}

These events should be consolidated into one single configuration change event.
for example:
{
  "type": "configuration_change",
  "data": {
    "flags": {
      "myBoolFlag": {
        "type": "delete",
        "source": "file:config/samples/example_flags.json"
      },
      "myStringFlag": {
        "type": "update",
        "source": "file:config/samples/example_flags.json"
      }
    }
  }
}

These changes should be made in the updateState method found in pkg/runtime/runtime.go

Including the flag type makes sense to me. 👍

As we are opting for the approach of a singular cache map for all flag types, receiving a flag's type in the event is now redundant. This is perhaps another benefit in favour of the one cache map to rule them all.


All of a sudden change in Data HHP components

Related: #1262
I'm trying to split up the hybrid heat pump in components. However, I'm storing the data as such:
[
  ...
   {"buffer"=>"buffer_space_heating_1",
    "components"=>
     [{"type"=>"households_space_heater_hybrid_heatpump_air_water_electricity_electricity", "capacity"=>4.9, "performance_coefficient"=>4.5},
      {"type"=>"households_space_heater_hybrid_heatpump_air_water_electricity_gas", "capacity"=>"22.0", "performance_coefficient"=>1.067}],
    "composite"=>false,
    "concurrency"=>"max",
    "full_load_hours"=>1197,
    "initial_investment"=>"2481.0",
    "node"=>"Households 1",
    "om_costs_per_year"=>252.892561983471,
    "performance_coefficient"=>3.583,
    "sticks_to_composite"=>true,
    "technical_lifetime"=>15,
    "type"=>"households_space_heater_hybrid_heatpump_air_water_electricity",
    "units"=>1},
  ...
]

Which makes sense. This data is taken from a pry session:

    126: def technology_profile=(techs)
 => 127:   case techs
    128:     when Hash   then super(TechnologyList.from_hash(techs))
    129:     when String then super(TechnologyList.load(techs))
    130:     else             super
    131:   end
    132: end

However, when I check the content of the  self.load  method in TechnologyList something weird happened to the components...
 {"buffer"=>"buffer_space_heating_1",
    "capacity"=>nil,
    "composite"=>false,
    "composite_value"=>nil,
    "congestion_reserve_percentage"=>nil,
    "demand"=>nil,
    "position_relative_to_buffer"=>nil,
    "profile"=>nil,
    "type"=>"households_space_heater_hybrid_heatpump_air_water_electricity",
    "units"=>1,
    "volume"=>nil,
    "composite_index"=>nil,
    "concurrency"=>"max",
    "full_load_hours"=>1197,
    "initial_investment"=>2481.0,
    "om_costs_for_ccs_per_full_load_hour"=>nil,
    "om_costs_per_full_load_hour"=>nil,
    "om_costs_per_year"=>252.892561983471,
    "performance_coefficient"=>3.583,
    "technical_lifetime"=>15,
    "associates"=>[],
    "node"=>"Households 1",
    "profile_key"=>nil,
    "components"=>
     ["Hybrid heat pump space heating (electricity) (households_space_heater_hybrid_heatpump_air_water_electricity_electricity)",
      "Hybrid heat pump space heating (gas) (households_space_heater_hybrid_heatpump_air_water_electricity_gas)"]}, <-- Say, whaaat.

Taken from pry session point:
    12: def self.load(data)
 => 13:   binding.pry
    14:   data.blank? ? new({}) : from_hash(JSON.parse(data))
    15: end

Is there some step in between that does this (and automatically adds a load of attributes (I also don't know where for instance profile comes from)?). I'm sort of blindly assuming that the self.load comes directly after the part where I'm adding the technology_profile and that there are no steps in between.

Looks like something is calling #to_s on the InstalledTechnology for the components?
InstalledTechnology.new(type: :households_space_heater_hybrid_heatpump_air_water_electricity_electricity).to_s
# => "Hybrid heat pump space heating (electricity) (households_space_heater_hybrid_heatpump_air_water_electricity_electricity)"

Maybe here?

I found out what it was. There's a bit of a ping-pong going on when creating a LES. The technology_profile is first put into InstalledTechnology objects right here. Than it dumps again here and loads again (causing the actual problem). The issue was in the dumping part, that one turned the components into InstalledTechnology objects while it should've turned them into a Hash aswell.
Therefor closing this issue.


[NUCLEO_F091RC/F303RE] Fix wrong detect_code field

Can you squash those 3 commits into one? Use git rebase -i ,for example

I don't know how to do it. If I run "git rebase -i", I have a file with "noop" Inside. Looks that the rebase has nothing to do...

http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html

Still not working. I will remove this request then.

IT's fine. I'll do that for you and describe here what I have done ;)

ok thanks.

Cherry-picked to master, resolved.


Travis build, test and push docker image

On a successful build on master the docker image should be pushed up

Add the build status badge to the README?

Good spot, will do now

Assuming the slack room values in the travis.yml are public ids and not sensitive?


apply Fourier

Implement Fourier transform for preprocessing

done

Implemented furrier transform to takes a function as input and outputs another function that describes the extent to which various frequencies are present in the original function so we can turn voice to useable data


KinD: kubeconfig is created in root user's home directory by default

ContainerLab enforces executing the deploy command with PID=0. Usually, it can be accomplished by executing the containerlab command with sudo. When the KinD is used, KinD creates a kubeconfig file to interact with the created cluster. The default path is $HOME/.kube/config. However, since we are creating the kind cluster in the root user context, it is created in /root/.kube/config. Because of this behavior, after the containerlab deploy, we cannot start using the k8s cluster with kubectl from the original user.
For example,
$ cat topo.yaml
name: kind01
topology:
  nodes:
    k01:
      kind: k8s-kind
    k01-control-plane:
      kind: ext-container
    server:
      kind: linux
      image: nicolaka/netshoot:latest
$ sudo containerlab -t topo.yaml deploy
...
$ kubectl cluster-info

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
The connection to the server localhost:8080 was refused - did you specify the right host or port?

The last kubectl fails because the default search path of kubectl is $HOME/.kube/config and it is not /root/.kube/config (when running with root user, it should succeeds).
I'd like to make the above workflow work without any extra effort (e.g., specifying KUBECONFIG env var). However, don't have any particular solution at the moment.

Hi
Did you try with 'sudo -E ...'?

Ah, good point. With -E, $HOME will be preserved, so it works well.

But we had a function that we use to automatically derive the homedir for other bits. So we can hopefully leverage it for kind as well, that way even if you forget to add -E flag the homedir of a sudo user will be used

Sounds cool. Thanks! Let me close this issue.


Compiler warnings in SimpleR

When compiling SimpleR a lot of warnings pop up.
Most of them seem to be of possibly used before declaration. type.
The other warnings are generated by the Au3Stripper with the following warning:
StripOnly/StripFunc Error: Found Call() statement using unsolvable Func, which will/could lead to removal of Funcs that are used by this Function.
This should be of no concern, these warnings are located in the metroudf requirements.

Will be fixed with 0043dce17da036cc3661f54d70bc6ab9b87bdf18

Warnings fixed with #17 - rest is from metroUDF


Feat fe download model

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.01%. Comparing base (7d8d2ad) to head (06ee0a4).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main       #5      +/-   ##
==========================================
+ Coverage   94.92%   95.01%   +0.09%
==========================================
  Files          11       11
  Lines         276      281       +5
==========================================
+ Hits          262      267       +5
  Misses         14       14

Flag
Coverage Δ

unittests
95.01% <100.00%> (+0.09%)
:arrow_up:

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

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


ODI DFP-34X-2C2 with device name as ODI DFP-34G-2C2

Hi,
I bought a DFP-34X-2C2, the stick on the SFP states that it is DFP-34X-2C2, but the device name in the UI is DFP-34G-2C2.
Is there a way to check that I got a real DFP-34X-2C2 ?

Thanks,
Felipe

you can try to update Product Class in settings section to see if the Device Name is updated. (remember to reboot after update)

Thanks for the suggestion, but what I am looking for is if there is a way to check that the device that I got is really a 34X-2C2 and support both gpon and epon. Or they mislabeled the device 34G-2C2 as a 34X-2C2

Got it, I think if the label on your stick is 34G-2C2 (compare to the detail from gpon-hack) then it's fine. Just use as usual

Hi, it is the opposite, the label is 34X-2C2 and the UI and SPF info is 34G-2C2

Any upload issue with this stick ?

Any upload issue with this stick ?

slow upload speed?


[SPARK-38404][SQL] Improve CTE resolution when a nested CTE references an outer CTE

What changes were proposed in this pull request?
Please note that the bug in the SPARK-38404 is fixed already with https://github.com/apache/spark/pull/34929.
This PR is a minor improvement to the current implementation by collecting already resolved outer CTEs to avoid re-substituting already collected CTE definitions.
Why are the changes needed?
Small improvement + additional tests.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Added new test case.

I updated this PR after we had the conversation here: https://github.com/apache/spark/pull/34929#discussion_r852219413

thanks, merging to master!

Thanks for the review @cloud-fan.


Google Analytics

Remove Google Analytics
If you must have an analytics system, might I suggest either:

Plausible: https://plausible.io (offers a 50% discount for FOSS projects)
Goatcounter: https://goatcounter.com
Matomo: https://matomo.org
Fathom: https://usefathom.org

These solutions are all well-tested and open-source. This, of course, means they
can be independently audited for privacy and security. Instead of using a proprietary
nonfree system such as Google Analytics, perhaps we could work together to replace
it with something slightly more ethical?
Furthermore, the majority of privacy features in evergreen browsers block Google
Analytics from being run. I can not say the same for solutions such as Plausible,
which suggests they are trusted for their privacy by independent persons.
If you need any more information, please contact me!

I'm curious. How does this connect to Normalize.css?
Does Google offer some kind of a CSS code level Analytics solution that's built in, but isn't referenced or do you mean as a general statement for all online communities?

I think because the web page uses it.
https://github.com/necolas/normalize.css/blob/3a60304f90870c6087d226f53e02a7523c907a35/index.html#L76

Yeah, the web page uses it.


Fix composer package on Packagist

Hi,
We cannot install the library using composer, like this :
composer require mailin-api/mailin-api-ph

Composer return :
Could not find package mailin-api/mailin-api-php at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability

Minimum staibility must be set to "stable".

Hello,
Thank you for contacting us.
Please run below command to install our stable PHP package using composer:
```
composer require mailin-api/mailin-api-php:dev-master
```

Regards,
Sendinblue Team

Thx!


Sending and validating Relationship Challenges and decrypting Messages is possible if Relationship was once active

Readiness checklist

[ ] I added/updated tests.
[x] I ensured that the PR title is good enough for the changelog.
[x] I labeled the PR.

I'm not sure about how much sense it makes to create a relationship challenge after the relationship has been terminated - but then sending or requesting challenges via Messages is not supported, so you are supposed to use a side-channel for which termination doesn't matter?? idk

I'm not sure about how much sense it makes to create a relationship challenge after the relationship has been terminated

IMO it doesn't

@Magnus-Kuhn please always assign everyone available from the runtime team.


A question about timestamp columns

Hi,
As you see in the image below, the native created_at column in the table has high precision, but the sort key (installation_execution_created_at) does not. This is leading to non-unique issues. Why is it that a DateTime such as '2021-05-31 16:36:20.461637' or '2022-05-12T00:22:33.144Z' are not stored with decimal places?

Hi, could you please provide the Dynamoid version that is in use and the fields declaration in the Dynamoid model (I mean table/field DSL methods)?

Hi @andrykonchin, thanks for the quick reply. The issue is that Rails ActiveRecord helpers for DateTime fields return an object with less precision, so a date like this '2022-05-12T00:22:33.144Z' is returned as  '2022-05-12T00:22:33 UTC'.
The solution was to pass in the date with more precision using strftime, like this:
created_at.strftime("%F %H:%M:%S.%12N %Z")
Once I pass the date as above, it is saved in Dynamodb with decimal places.


Add the policyfile revision_id as an automatic attribute.

/cc @coderanger @danielsdeleo
We have been looking for an easy way to get this value into our error
reporting application and it surprised me that it isn't already
captured. If there's a better way to do this totally open for thoughts!

This looks fine to me. @lamont-granquist does this cause any future problems with desired state vs. last observed state?

Another option would be to attach some kind of node.policy API which can expose more than just the name/group. But this seems fine for now. No more broken with desired vs. current than anything else we do :)

Yeah, I just don't want to dig the hole any deeper, especially if someone was planning to work on fixing it soon.

just based on a quick skim this looks okay, since the revision_id is coming from the policy object and the node isn't changing that.  the node is just publishing an automatic attr announcing its state in its node attributes which seems fine.
of course the issue here is that the node can be hacked and therefore lie about its revision, and other parts of the infrastructure that search on that may trust the revision and it may be possible to do-bad-things -- in which case you'd really want to present a merged facade of the node object and the policy object to users, or else to allow searching based on the policy attributes (knife policy search)?  feels like we should probably write those other APIs if we need to better lock down policy information as desired state, but i don't think that warrants blocking this change...

Needs tests and release_notes though.

travis is sad and needs tests + release_notes


Two-level-Acordion clic to collapse... fires too many Collapse events

If an acordion is inserted inside another one... the collapse event of the big one is fired when collapsing the small one.
You can see the effect just expanding the "Press here ONCE" title and then pressing twice the "Press here TWICE. You will see two collaping events."
at this full example: https://codepen.io/igll/pen/bmyWBW (Jan 8th, 2019: Updated to Bootstrap 4.2.1)

Bug reports must include a live demo of the problem. Per our contributing guidelines, please create a reduced test case via CodePen/JS Bin or Stackblitz and report back with your link, Bootstrap version, and specific browser and OS details.
This is an automated reply

Ty

(sorry) This is the live demo https://codepen.io/igll/pen/bmyWBW

Example updated to Bootstrap 4.3.0: https://codepen.io/igll/pen/bmyWBW

Example just updated to Bootstrap 4.3.1: https://codepen.io/igll/pen/bmyWBW

Closing as stale for v4. We'll be moving onto focus entirely on v5 and v4 will only see critical updates.


[UI][Feature Request] Snap to region boundaries

New to perfetto, so please redirect me if this question / issue is answered elsewhere.
One feature I find very useful in chrome://tracing that I haven't been able to figure out how to do in perfetto is to snap to boundaries, e.g.:

This lets the user easily measure gaps between events / regions / what have you.
In the version of the UI I've been using, I haven't been able to figure out how to achieve the equivalent:

You can get an approximate duration by dragging the cursor between two points, but a snap-to-boundary would be much more convenient.

I agree on the convenience.
This is a nice-but-not-critical feature and there are too many, more important features on top so will take a while until we get here (but it's a good bug/proposal).

But that isn't quite the same of snapping to boundaries (e.g. doesn't work for gaps)

I'm looking for the same requirement. Is there a specified support period available?

Agree with @skyreflectedinmirrors, adding a feature similar to Chrome Tracing's Timing Mode would improve Perfetto's ability to measure time intervals across multiple slices or gaps. Current tools like area selection and the 'm' shortcut are useful but lack the precision needed for measuring over multiple events. This functionality would make time analysis more straightforward and effective


Incorporating cividis colorscheme

Hello,
Nuñez et al (2018) https://doi.org/10.1371/journal.pone.0199239) introduced an optimized colormap that is more inclusive of people with color vision deficiency. Maybe this optimized version of viridis, named cividis could be incorporated into MRIcroGL and SurfIce?
I have added a clut file for cividis; I looked up the colors used in viridis and replaced them with the corresponding RGB from cividis. A naive version of clut with all 256 nodes (which is not practical) is also attached. I have changed the extension from .clut to .txt
cividis.txt
cividis255.txt
A quick side-by-side comparison of viridis (left) and cividis (right) is below:

Resources:
Details on clut format: https://www.nitrc.org/forum/message.php?msg_id=26007
Examples of cividis: https://www.ncl.ucar.edu/Document/Graphics/ColorTables/cividis.shtml
https://github.com/marcosci/cividis

Thanks. Will be included with the next stable release of MRIcroGL and Surfice.


Unable to highlight code in raw block

Describe the bug
When try to use tinymist in my project, I found the code in raw block is not highlighted. By inspecting editor token and scope, the results shows only typst.

Package/Software version:
VSCode version(Help -> About):
Vesion: 1.90.0
Commit: 89de5a8d4d6205e5b11647eb6a74844ca23d2573
Sate: 2024-06-04T19:43:07.605Z
Electron: 29.4.0
ElectronBuildId: 9593362
Chromium: 122.0.6261.156
Node.js: 20.9.0
V8: 12.2.281.27-electron.0
OS: Linux x64 6.5.0-1023-oem

tinymist extension version: v0.11.0. Get it by tinymist --version in terminal.
tinymist
Build Timestamp:     2024-06-17T05:47:43.517039979Z
Build Git Describe:  v0.11.11-dirty
Commit SHA:          1c653d5fd28706e27077f8a2d49e6e7f072c2bb2
Commit Date:         None
Commit Branch:       None
Cargo Target Triple: x86_64-unknown-linux-gnu
Typst Version:       0.11.1

Is that a unimplemented feature or a bug?

This is implemented but introduces bug so I disabled it.
https://github.com/Myriad-Dreamin/tinymist/blob/main/syntaxes/textmate/fenced.ts
The case of bug, when your code in raw block has grammar errors, the highlighting after the raw block will be messy:
The document ```c++
class BuggyCxxCode
``` will be messy.
/// vscode continues parsing c++ grammar after the block
class is hightlighted.

I wonder how markdown deals with this

Would the Embedded languages - Syntax Highlight Guide be helpful?
@Enter-tainer VSCode's markdown syntax is located here and looks like
https://github.com/microsoft/vscode/blob/42b3bac02e37836393b4c4b46fcc91aa03e02aa8/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json#L698-L730
And I see many embedded langauges projects follow the same patterns, say Vue
https://github.com/vuejs/language-tools/blob/e4e8c8ca14dc564bf9043a625dd704b32bdc69d0/extensions/vscode/syntaxes/vue.tmLanguage.json#L90-L121

The regex tricks from markdown.tmLanguage don't help us, since it cause false highlighting in some cases. Regarding to having semantic highlighting, we would like to make syntax highlighting work only if it is 100% correct. Concludingly, I adapt the rules from vue.tmLanguage and generate all rules to cover cases when the ticks of fence is less or equals to 6.

Failure explanation, the following begin/while pattern usually fails:
{
	"begin": "(^|\\G)(\\s*)(.*)",
	"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
	"contentName": "meta.embedded.block.cpp source.cpp",
	"patterns": [
		{
			"include": "source.cpp"
		}
	]
}

The above rules don't exactly match fences ([`~]{3,}) (if I read it correctly), sometimes causing messy highlighting.


Failed to build on IOS

Platform: IOS
CLI Version: 5.4.2
Core Modules Version: 5.2.0
Issue:
I'm using another plugin called Photo Zoom, the plugin uses SDWebImage Pod version 4.0
where this plugin uses version 5.0.0-beta3 of the same pod.
Is there a ways to make the build running by using both of the plugins?

@anaszgh not sure that possible yet. Please ask this on {N} repo


App crash when update app from playstore because of tenserflow library.

when i updated app from playstore it is going to crash
Fatal Exception: java.lang.NullPointerException
Attempt to read from null array
com.optick_employee_mobile_app.FaceRecognitionPythonModule.findNearest (FaceRecognitionPythonModule.java:571)
com.optick_employee_mobile_app.FaceRecognitionPythonModule.recognizeImage (FaceRecognitionPythonModule.java:508)
com.optick_employee_mobile_app.FaceRecognitionPythonModule$2.onSuccess (FaceRecognitionPythonModule.java:144)
com.optick_employee_mobile_app.FaceRecognitionPythonModule$2.onSuccess (FaceRecognitionPythonModule.java:127)
I found this message from crashlytics. this is happening only after update app from playstore.

@ChetanAlmelkar,
The error which you are facing is due to the tflite file which you are accessing may not be properly added to the assets folder. Could you please try to add and let us know if it resolves the error.
https://github.com/tensorflow/tensorflow/issues/8233.
Thank you!


KAFKA-4320: Log cleaner is enabled by default

The log cleaner is enabled by default since <IP_ADDRESS>. But the 0.9.0 docs are not updated. This PR updates the docs to say that it is enabled by default.

Hmm, your PR is targetting the 0.9.0 branch instead of trunk. Can you please change that? Also, we don't need to give instructions on how to enable it in <IP_ADDRESS> in the documentation for 1.0.0 (which is what we're updating).

@ijuma That is intentional. This PR and #3899 are fixing the docu for old versions as suggested in KAFKA-4320. There still seem to be quite a few users. The latest documentation is already updated. For that I raised only minor improvement in #3900.


Resource Ids in definition json is parsed as paths

Resource Ids in definition son is parsed as paths. It tried to resolve the resource id as a path.

Resolved. Fix is implemented and pushed to vnext branch.


Feature Request: startup probes

Would be nice to have (next to readinessProbe and livenessProbe probe) the startup probes.
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes

Hi @belfo,
Thanks for reaching out. We had considered adding a startup probe but hadn't thought that it was necessary because our current liveness probe is designed to succeed while a WebLogic Server instance is starting.
While the readiness probe is an HTTP probe that attempts to connect to the standard WebLogic "ReadyApp" endpoint, the liveness probe is instead a small script that is executed in the container.
This script validates that the node manager process is running and that the node manager is reporting some other WebLogic Server state other than FAILED_NOT_RESTARTABLE. This means that the liveness probe will pass while the state is still STARTING.
Or, do you have a different intention such as wanting the liveness probe to fail if the server instance isn't in the Ready condition after some timeout?

In fact i had to put a very large liveness probe as it was killing the container before weblogic was starting, so it was restarting continuously (this is clearly caused by another issue in our cluster who is too slow)
The startup at least will avoid this as it won't kill the container.

Do you happen to have any logs from the servers that were killed prior to your setting the large initialDelaySeconds?

I haven't kept  logs but what i have is the exit code:
Containers:
weblogic-server:
Container ID:  containerd://f2baeb6839bb88e66448d84dcc7baddf862801caa665f598542573ad61538d6a
Image:         nexus.priv:9003/middleware/weblogic/wls:<IP_ADDRESS>.0.bcprov.vap.patch2
Image ID:      nexus.itsmtaxud.priv:9003/middleware/weblogic/wls@sha256:f2af756c4df2358f27cb8f51c8469d83bea4594a6a5ec95be830d5d837f086ed
Port:          7000/TCP
Host Port:     0/TCP
Command:
/weblogic-operator/scripts/startServer.sh
State:          Running
Started:      Fri, 16 Sep 2022 10:21:06 +0200
Last State:     Terminated
Reason:       Error
Exit Code:    137
Started:      Fri, 16 Sep 2022 10:19:16 +0200
Finished:     Fri, 16 Sep 2022 10:21:04 +0200
Ready:          False
Restart Count:  5
And the events:
17h         Normal    Started                    pod/host-admin-server                Started container weblogic-server
84m         Warning   Unhealthy                  pod/host-admin-server                Readiness probe failed: Get "http://<IP_ADDRESS>:7000/weblogic/ready": dial tcp <IP_ADDRESS>:7000: connect: connection refused
17h         Warning   Unhealthy                  pod/host-admin-server                Liveness probe failed: @[2022-09-15T16:21:18.419112699Z][livenessProbe.sh:77][SEVERE] WebLogic NodeManager process not found.
10h         Normal    Killing                    pod/host-admin-server                Container weblogic-server failed liveness probe, will be restarted
17h         Warning   FailedPreStopHook          pod/host-admin-server                Exec lifecycle hook ([/weblogic-operator/scripts/stopServer.sh]) for Container "weblogic-server" in Pod "host-admin-server_dev(040c8163-7417-4bc4-ae2e-283d470e2707)" failed - error: command '/weblogic-operator/scripts/stopServer.sh' exited with 1: /weblogic-operator/scripts/stopServer.sh: line 22: /u01/domains/base_domain/servers/admin-server/logs/admin-server.stop.out: No such file or directory
And the pod logs was showing
up to [FINE] Exiting encrypt_decrypt_domain_secret
By setting the following high value, i was able to start (i haven't test any finetuning, just put some big value to be sure, but took around ~5min to have the weblogic starting)
serverPod:
livenessProbe:
initialDelaySeconds: 900
periodSeconds: 120
timeoutSeconds: 60
failureThreshold: 5
readinessProbe:
initialDelaySeconds: 300
periodSeconds: 90
timeoutSeconds: 60
failureThreshold: 5

It is unusual to see '[livenessProbe.sh:77][SEVERE] WebLogic NodeManager process not found'. The NM is started very soon after the pod starts and before WebLogic Server itself is started. A log would be helpful to determine why the WL pod is taking so long to get to the NM start stage. Is this a JRF domain?

Hello @tbarnes-us
Indeed it's unusual, it was related to resource availability of the underlying K8s nodes.
Once the node got more resources (some logical limitation on the vcenter) all was good.
But the idea of having startup probes still make sense on my point of vue.
Worst case they are useless, best case they can at least prevent the pod to restart when not needed.

A reproducer pod log would help evaluate the idea - e.g. whether the startup probe would help in the first place, and, if so, how the startup probe would need to be coded...

I have no more the issue so hard to reproduce.
But the weblogic was not yet started (probably the same check as liveness could be enought?) with the advantage that it will not kill the pod until it's marked as started.
The limitation was around 20GB ram & GHz for all the node.... we have 8 nodes. So clearly not enough.

@rjeberhard @belfo
I recommend closing this Issue because the root problem (lack of allocated resources) has been fixed, and, in my opinion, a wide variety of failures and retries are expected when too few resources are allocated. It can be revisited if/when the problem is reproduced with sufficient data for a full diagnosis (pod logs, etc).
Thoughts?


Go 1.19

Upgrading in response to https://nvd.nist.gov/vuln/detail/CVE-2022-27664
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve

/lgtm


Add dynamic libraries for external commands

Signed-off-by: Kemal Akkoyun<EMAIL_ADDRESS>
Adds missing dynamic libraries for external commands
Make sure the development container is closer to the production container

This PR targets the release branch 0.8. After merging this we will release 0.8.1

Nice!! LGTM


Deprecate the Is matcher, for eventual deletion

The Is matcher doesn't do anything, and so should be deleted.
Factory methods for is should not be added to the domain-specific factory classes introduced as part of #85

I like the is(value) shortcut. It's shorter to type and as npryce pointed out is more natural to read. I do agree that is(matcher) is a bit overkill since it doesn't change the matcher outcome compared to the contained matcher, but I also agree that for readability I like the option to use it. Also, its existence doesn't hurt anything and removing it will therefore only be a hassle for end-users since it would be a breaking change.


skipping tests in file as opposed to in travis

tests should be skipped in test files, not in travis file

I have now signed CLA

Coverage increased (+1.0%) to 53.788% when pulling f2615e1a59478d9d3cbc49ba4c38e816f2d2640f on fixing_tests into 61007b262f33e94a527ae1ae45ce6d43b513beba on develop.