Need YouTube video player support in Ensemble

The Ensemble video Player widget plays if provided the video link. Since youtube doesn't expose actual links/ or provide short lived links out, its hard to play Youtube videos. Is there a way to get a Youtube player for Ensemble like this one in Flutter Pub
https://pub.dev/packages/youtube_player_iframe
Can we wrap this widget as a youtube widget and make it available in Ensemble?

@fullstackctp start by proposing a YAML configuration for this.

EnsemblePlayer:
    link:
    aspectRatio:
    fullScreen:
    AutoStart:

YoutubePlayer:
    link:
    aspectRatio:
    autoStart:

@fullstackctp please review the properties that the https://pub.dev/packages/youtube_player_iframe provides and expose most of them in YAML. Looks like you may have just looked at the short sample code they have there.
This Youtube player has a number of properties such as mute, showControls, showFullscreenButton, loop etc. We need to expose them in yaml so the developers may utilize them. Also the link should be smart enough to just take the video id or the full link.
Please go a bit deeper into the package!

YoutubePlayer:
    link:
    showControls:
    showFullScreen:
    showVideoAnnotation:
    loop:
    startSeconds:
    autoStart:
    aspectRatio:
    videoList: (If you want multiple videos to be played in a single player)
    enableFullScreenOnDrag:
    autoFullScreen: (when user starts playing the video, it automatically opens up fullscreen)

In the package there are multiple controls that they provide. So to expose them as well, i will need to create different getters and methods as well eg
getters
metadata  - title, author, videoId,
PlayerbackRate - 0.25, 0.5, 1, 1.25
PlayBackQuality
methods
mute(), unMute(), nextVideo(), previousVideo(), setLoop(bool value)
I tried out its functionality in the web example provided, there is a small bug. It doesn't load playlist on the basis of playlistId. If you provide a list of video_Id then it works, but just providing playlist id, it doesn't load it up. (The is mentioned in their repository [sarbagyastha/youtube_player_flutter/issues/865])

looks great. Please go ahead. cc @reubensjohn

@fullstackctp please update documentation and create a kitchen sink example

when done, close this ticket

Pretty cool, will be using this soon. When will this be available to use? When will it show up in the ensemble Go?

most likely by tomorrow evening. I'll post it here

Awesome. Devs will love ensemble for this

this was fixed in #886 closing


Implement new resource creation workflow as decided in all-hands meeting

Implement new resource creation workflow as decided in all-hands meeting at Logan to have resources created immediately after a resource type is selected with optional file upload and title input. Details below copied from Jeff H.'s note from all-hands meeting:
What is the state of HydroShare at each step in the resource creation sequence?

User Clicks “create new” to create a new resource
The Select Resource page appears.  Nothing exists at this point.
The user selects a resource type. Nothing exists yet.
The user creates a title for the resource (NOTE: this should be optional and doesn’t exist yet - pre populate this field with “Untitled resource”)
Optionally, the user clicks choose files and selects one or more files. Nothing exists yet.
The user clicks the “Describe Resource” button - this button should really be titled “Create Resource”.

This submits the form
Creates the resource container (the bag) on disk in HydroShare
Creates a title for the resource of “Untitled Resource” if it wasn’t specified
Creates a permanent and persistent internal HydroShare identifier
The resource container (the bag) is named on disk using the identifier
At this point whatever files that were specified on the form are written to the resource container at the right location in the bag.
The resource metadata and resource map are created with default values - defaults or whatever elements can be extracted from the files that were given.
The user is then taken to the resource landing page where they can edit the default metadata directly on the landing page.  This way we only edit resource metadata in one place.
Since the landing page has individually editable elements, each edit is saved individually as the user edits it.

NOTE:  Individual metadata edits SHOULD NOT create an entirely new version of the resource.  This is a separate discussion that needs to be dealt with.
NOTE:  There are issues with reference time series

The first page might have to change depending on which resource type is selected.
OR - specific resource types may have to have a page between the initial resource creation page and the resource landing page

What is required for a resource to exist?

A resource container on disk (the bag and the bagit files)
An internally persistent and unique identifier - by which the bag is named.
A selected resource type.
resourcemetadata.xml - this file must exist, even if it has empty or default values
resourcemap.xml - this file must exist, even if it has empty or default values

What is required for a resource to be shared with another hydroshare user or group?

No additional metadata is required in addition to what is required for resource creation.
The user must choose to share with the other user or group.

What is required for a resource to be shared publicly - e.g, the Resource becomes publicly available and discoverable in HydroShare?

We think HydroShare should be default private.  All resources are initially private by default.
When a user chooses to make a resource public, the metadata are validated for completeness - e.g., the required elements are checked. This is necessary for a resource to be cataloged for discovery
If valid, the resource is made public and discoverable.

What is required for a resource to be published

Publication is initialized by the owner of the resource (i.e., the owner makes a choice to do so)
The owner must agree to a publication agreement - allows HydroShare to be the publisher?
Selection of a license under which the resource will be published by the user - e.g., Creative Commons (which versions should we make available?)
Fully validated metadata

Need to define “valid”
Need to program a validator

Assigned permanent external identifier (DOI)

Not all of the requirements have been implemented yet. We may have to break issue#62 to a number of sub-issues.

HydroShare Resource Creation Workflows Issues in GitHub: #37, #62, #81

Implemented in Alpha for v 1.3 deployment


Add ability to change account

Hi there, great work on the tool and vim plugin.
It would be awesome to have a plugin shortcut to change the accounts used in vim plugin. Currently it seems to be possible only to move around mailboxes and pages within the default account from vim.

Yes, it's part of the feature I would like to implement. Thanks for pointing it out!

In fact it could be nice to list available accounts. A bit like for mailboxes. But this requires to also change the CLI!

hey @soywod  -- I would also really be interested in using this feature! how is this going so far?

I am working on https://github.com/soywod/himalaya/issues/80 these days. As soon as I finish I will take care of this one :smiley:

@soywod Would it be feasible to have the option of a "unified inbox"? Basically just list all inboxes of my account at once and fuzzy search through it (with the VIM plugin).

Is it what you are looking for? https://github.com/soywod/himalaya/tree/master/vim#list-mailboxes.
For now there is only 2 integrations (fzf and telescope).

@soywod no what I am asking is whether you can display all emails in your inbox across multiple accounts. So let's say I have a gmail work account and a personal mail server, I want to display both inboxes as one.
The integrations are great, very much appreciate the telescope one :)

@soywod no what I am asking is whether you can display all emails in your inbox across multiple accounts. So let's say I have a gmail work account and a personal mail server, I want to display both inboxes as one.

I understand now. It could be interesting indeed, but I'm afraid the CLI is not designed for such a thing right now. Maybe sth to consider after the v1!

The integrations are great, very much appreciate the telescope one :)

You can thank @AckslD, he did a lot for this feature :wink:

I start to work on this feature, I let you know when I have sth to propose!

@soywod I think a good start would be to just be able to specify the account with :Himalaya account=gmail unless that is already possible somehow and I missed it. Being able to do that, I could just use which-key to have inidividual shortcuts with a nice indicator for my accounts.

The account is now attached to the Vim session (like the mbox and the pagination). You can change the account by adding a parameter to the command: :Himalaya gmail. It is available on master, so you should get the feature by upgrading the plugin. I should also release soon the next CLI version.

v0.4.0 released :tada:


Repackaging Jackson package breaks Jackson annotations

Repackaging Jackson package breaks Jackson annotations :(
When I serialize user claim using JwtSigner the following code is not working.
public class UserAuthority  {
    @NotNull
    @ManyToOne
    @com.fasterxml.jackson.annotation.JsonIgnore
    private User user;
}

Annotation JsonIgnore is ignored  and this field is serialized (causing infinite loop).
When I switch to  annotations from com.auth0.jwt.internal.com.fasterxml.jackson everything works perfectly.
public class UserAuthority  {
    @NotNull
    @ManyToOne
    @com.auth0.jwt.internal.com.fasterxml.jackson.annotation.JsonIgnore
    private User user;
}

Is repackaging com.fasterxml.jackson and org.apache.commons.codec absolutely necessary.
Can't You add them as standard dependencies?

Hi @hexangular,
Unfortunately, people using our library could be using a different Jackson version (this was the case why we decided to merge this change, see https://github.com/auth0/java-jwt/pull/6). I agree is not elegant repackaging but how would you address having different versions of Jackson? Do you think there is a better and more elegant way to tackle the issue?
Thanks in advance,

Hi @pose ,
Maybe can You provide some kind of adapter for users and remove Jackson from dependencies.
Adapter interface would have all serialization/deserialization methods and user would implement it using his version of Jackson or maybe even using different library.
It would require a liite more work from users but I think It can be a solution.
What do You think?

Hi @hexangular,
One of the guiding lights of java-jwt is making the library simple to use. That means that we should provide a default JSON serialization/deserialization mechanism in the library. I agree with your point of creating an Adapter Interface as long as is clear and doesn't add much complexity or too many abstractions but by default it should work as it does now.
Maybe there is another way to solve this: What if we use optional dependencies in Maven? I'm thinking something like, if you include GSON or your own JSON library we use that but if we don't find it we switch to our default. One of the drawbacks would be that those checks could be expensive as they use reflection. Thoughts?

Or you could provide multiple binaries and let consumers decide whether or not to have things repackaged.

Couple of comments here, in case they might help.
First, while it makes sense to repackage some of Jackson code (like streaming parser/generator, jackson-core and databinding, jackson-databind), it may not make as much sense to repackage annotations under com.fasterxml.jackson.annotation. That package is much more static and slow moving, and rarely causes version conflicts. So perhaps leaving annotations package in its original Java package would be the best way? This would allow working with both vanilla Jackson 2.x and repackaged version(s).
Second: all access to annotations by Jackson is via abstract (AnnotationIntrospector), so it is actually possible to add support both for "alien" annotations (like JAXB), old versions (use Jackson 1.x annotations with Jackson 2.x) and repackaged variants. Not sure if this helps here -- probably not? -- but perhaps worth mentioning.


Final switch of DNS for stage environment

[ ] Ensure that the new stg environment is online and functioning.
[ ] Ensure that the site has a homepage (we redirect to DMPTool at the moment)
[x] Update the data stack so that S3, Cognito and DynamoDB are protected from accidental deletion.
[ ] Have IAS point dmphub-stg.cdlib.org to point to the new DMPHub stg system

this is done. we have been running the system in production since January


Remove value tuple 431 from VisualFSharpFull.vsix

When we updated the templates to use ValueTuple 4.4.0 a while back, we needed to add both ValueTuple 4.4.0 and $.3.1 to the VSiz to ensure that, both new and old templates worked with the nightlies build.  We do not need the 4.3.1 version of System.ValueTuple in the shipped product.

Does this address #4550?


Vendoring JS modules

The go modules are currently downloaded and copied to vendor, which allows offline building. As https://github.com/go-gitea/gitea/pull/9114 stands, this will not be possible for the JS modules which are pulled from npm during the build.
If we want to have offline building of frontend assets, I could see the following solutions:

vendor the full node_modules unaltered which is 20929 files at 115MB.
use yarn PNP mode and vendor the resulting files as well as yarn itself which is 920 files at 25MB (individual modules are stored zipped in this case).
come up with a custom solution that compresses node_modules into a single file and uncompresses it before the build.

Im leaning towards option 2

I too would prefer with option 2 because it will at least give a somewhat readable diff when the modules are being updated and we would no longer depend on npm whose development has gone a bit stale recently.

I don't know yarn but I imagine that it will update only the individual zips that need updating, so it's more granular. If that's the case, I think 2nd option is a clear winner. But we need to lock down all the libraries. Otherwise they will change "randomly" if we rebuild the project and we're back to square one.

Yes, during an update only package.json, the lockfile and the zips will change.
During my testing, I noticed that 5 modules were stored "unplugged", meaning they were not in a zip but in its own directory uncompressed. From what I gather, this is the case when a module can for various reasons not fully work when "plugged" so yarn deoptimizes it. I imagine these cases will eventually be fixed by yarn and/or the modules itself.
Should I include the changes for offline JS build in https://github.com/go-gitea/gitea/pull/9114?

I would be against vendoring js deps because there are proxy that store the versionned so it limit the risk for deps to disappear (which is the same for go now and maybe we could drop vendoring go mod now when go1.14 is out).
On drone we can cache the node_modules folder.
On an offline build, when fetching the git repo (needing internet) someone would need to fetch the deps also.

@sapk So maybe we could have a command on Makefile like make fetch_deps to download all the dependencies.

I would be against vendoring js deps because there are proxy that store the versionned so it limit the risk for deps to disappear

Not sure exactly what your concern is, but npm modules can not go away. Published version can only be unpublished for a very limited time, after that a module version is practically guaranteed to ever exist on npm (at least until npm shuts down).

So maybe we could have a command on Makefile like make fetch_deps to download all the dependencies.

Agree, once we un-vendor everything including go, such a make target should be there so it can be called either during the build or manually.

Not sure exactly what your concern is, but npm modules can not go away

Yes we are on the same page that why I would say that vendoring them in the repo is not needed.
Using the term proxy was maybe not the best term to use for js. Sorry. (I had in mind the goproxy)

My point for vendoring is that I could certainly see someone having a up to date checkout but no or restricted Internet access when building. So at minimum, we should document the online requirement for the build.
With GOPROXY now being the default and the caching it brings, I don't see vendoring go anymore as a strict requirement to protect against source going away.
I would either prefer vendoring everything (go and js) or nothing, to be consistent.

Maybe it is time for a vote.

:+1: Don't vendor any
:-1: Keep vendoring Go only
:smile: Vendor only JS
:tada: Vendor both JS and Go

I couldn't find it, but there was a comment not long ago asking us to vendor everything so some linux/docker distributions could use a "closed package" for building, as the want the build to be 100% predictable.
That would be my only reason to vote 🎉. Otherwise, I'd go 👎 because I think there are too many repositories for our golang packages to rely on. We could use mirrors in gitea.com for some of them, but that wouldn't be very nice.

I voted the same as @guillep2k, for the same reasons. And if we vendor JS (in addition to Go), then we can remove the pre-built CSS/JS files from source.

I couldn't find it, but there was a comment not long ago asking us to vendor everything so some linux/docker distributions could use a "closed package" for building, as they want the build to be 100% predictable.

@guillep2k It must be https://github.com/go-gitea/gitea/issues/9174, We could still provide a tar.gz with JS (the node_modules folder) and GO deps (the vendor forlder after a go mod vendor)for release on https://dl.gitea.io/

then we can remove the pre-built CSS/JS files from source.

@techknowlogick They are here not for the same reason. The goal was to not need nodejs for building gitea (when not touching js part). But I am ok with removing them since I think most people have node (or a docker version) installed on their dev machine.

@guillep2k It must be #9174,

It was that issue indeed.

I went with 👍 because I do see vendored copies as redundant. Offline build is not important to me personally, otherwise I'd go 🎉.

I think we all agree that we need to vendor or not vendor both.
To not take more time and move forward, I think we can put a deadline for the vote in 2 days (7days in total) and wait for the vote of last owner to not vote. Gentle ping to @lafriks
Vote comment: https://github.com/go-gitea/gitea/issues/9170#issuecomment-559480784

This is a choice between keeping compiling consistent and don't store too many files on git.
About code size:
Gitea: 316MB
vendor: 56MB
node_modules: 110MB
If we vendor all it will be over 430 MB, if we remove all vendors, it will be 260MB.

If git/gitea support a merge style to allow overwrite somefiles anytime, then I think keeping the current structure.(Only vendor go) maybe a better choice.

merge style to allow overwrite somefiles anytime(index.js/index.js.map)

I thought removal of js/css bundles was already somewhat decided. They will be gone with https://github.com/go-gitea/gitea/pull/9114. Of course, we could introduce them later if a resolution  for the constant merge conflicts is found.

Problem with keeping zip files in git repository is that it will grow quite considerably as all zip file versions will be kept in history as they are binary and even if small subset of files change in node_modules new zip file copy will be in git history.

Just changed my vote to not vendor anything, it will add slight increase to fetch required libraries for golang, but we already fetch required libs for npm/node in CI, so not much extra time.
The ticket we got about go not being vendord for the linux flavour (which is false as we do vendor go), I will propose an alternative for them in that debian actually requires each vendor lib to be a package in itself (I know that was a pain point for getting gitea into official debian repo, which the project was never able to do because we have many dependencies).

One note regarding the yarn zip vendoring approach I mentioned earlier: It will require the beta version of yarn (https://github.com/yarnpkg/berry) and it seems the PNP mode is rather unstable as it stands, so I don't really consider it a valid option (yet).

If we don't vendor anything, we should at least add some cache for our CI, otherwise it may spend more time than currently. Or we may need ourself goproxy/npm mirror to protect external service down.
A goproxy will use goproxy.io/goproxy.cn as a upstream, npm mirror could use npmjs.org as upstream.
PNP seems not very stable currently. I think we should use stable technology as our dependencies.

Voting deadline has ended, let's continue in https://github.com/go-gitea/gitea/issues/9283.


UnsignedIntType is not used

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Tuhere is an UnsignedIntType implemented here.
Steps to reproduce

Create a POCO containing an uint typed property, e.g.:
public uint DerOneUint { get; set; }
Add the Poco to your schema.
Run

Relevant log output
HotChocolate.SchemaException: For more details look at the `Errors` property.

      1. Unable to infer or resolve a schema type from the type reference `Output: UInt32`.

         at HotChocolate.Configuration.TypeInitializer.DiscoverTypes()
         at HotChocolate.Configuration.TypeInitializer.Initialize(Func`1 schemaResolver, IReadOnlySchemaOptions options)
         at HotChocolate.SchemaBuilder.Setup.InitializeTypes(SchemaBuilder builder, IDescriptorContext context, IReadOnlyList`1 types, LazySchema lazySchema)
         at HotChocolate.SchemaBuilder.Setup.Create(SchemaBuilder builder, LazySchema lazySchema, IDescriptorContext context)
         at HotChocolate.SchemaBuilder.Create(IDescriptorContext context)
         at HotChocolate.SchemaBuilder.HotChocolate.ISchemaBuilder.Create(IDescriptorContext context)
         at HotChocolate.Execution.RequestExecutorResolver.CreateSchemaAsync(NameString schemaName, RequestExecutorSetup options, RequestExecutorOptions executorOptions, IServiceProvider serviceProvider, TypeModuleChangeMonitor typeModuleChangeMonitor, CancellationToken cancellationToken)
         at HotChocolate.Execution.RequestExecutorResolver.CreateSchemaServicesAsync(NameString schemaName, RequestExecutorSetup options, CancellationToken cancellationToken)
         at HotChocolate.Execution.RequestExecutorResolver.GetRequestExecutorNoLockAsync(NameString schemaName, CancellationToken cancellationToken)
         at HotChocolate.Execution.RequestExecutorResolver.GetRequestExecutorAsync(NameString schemaName, CancellationToken cancellationToken)
         at HotChocolate.Execution.RequestExecutorProxy.GetRequestExecutorAsync(CancellationToken cancellationToken)
         at HotChocolate.AspNetCore.HttpPostMiddleware.HandleRequestAsync(HttpContext context, AllowedContentType contentType)
         at HotChocolate.AspNetCore.HttpPostMiddleware.InvokeAsync(HttpContext context)
         at HotChocolate.AspNetCore.WebSocketSubscriptionMiddleware.InvokeAsync(HttpContext context)
         at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
         at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

Additional Context?
No response
Product
Hot Chocolate
Version
12.0.1

It's part of the HotChocolate.Types.Scalars package, which can be installed as shown in the documentation: https://chillicream.com/docs/hotchocolate/defining-a-schema/scalars/#additional-scalars
They are separate, since these are scalars that aren't defined in the GraphQL specification. We have crafted them for convenience, but you can also build a GraphQL server without these - that's why they're separate.


找不到或无法加载主类 .data.flinkx.chunjun-dist....lib.flink-annotations-1.12.7.jar[Question][Module Name] Ask for question

Search before asking

[ ] I had searched in the issues and found no similar question.

[ ] I had googled my question but i didn't get any help.

[ ] I had read the documentation: ChunJun doc but it didn't help me.

Description

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Make your lib like this,delete other jar or move them out，only keep ‘chunjun-clients.jar’ ，and try again

解决了吗？


add more test case

What this PR does:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Codecov Report

Merging #203 (dc18f7c) into develop (70e6fb7) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #203   +/-   ##
========================================
  Coverage    36.39%   36.39%
========================================
  Files           36       36
  Lines         1937     1937
========================================
  Hits           705      705
  Misses        1137     1137
  Partials        95       95

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 70e6fb7...dc18f7c. Read the comment docs.


protobuf: upstream_bind_config is a core.v3.BindConfig instead of an UpsteamBindConfig

Description:
I'm not sure if it's just "misspelt" or it has to be like this, but cluster.upstream_bind_config is a core.v3.BindConfig. I think it should be a UpstreamBindConfig. This way UpstreameBindConfig message is totally unused. And using the current state does nothing.
Additional questions:
How exactly should this field work?
With this upsteam_bind_config field should I be able to tell envoy which port_value should it use when sending datagrams to the upstream host? I mean we want to control the port value from our service gets its datagrams. Instead of letting envoy open a socket from a random port, we want to tell which specific port to use when connecting to an upstream host. Is it possible?

Good catch. I think we should deprecate UpstreamBindConfig  though it's more accurate. Cc @htuch

I use BindConfig to bind source ip.
BindConfig::SockAddress contains port (source port) as you need
`uint32 port_value = 3 [(validate.rules).uint32 = {lte: 65535}];

Yes, this should be marked as deprecated at message level and comments added to that effect. This is pretty confusing, I agree.

@lambdai UpstreamBindConfig works with HTTP, but not with UDP.
I tried using it with UDP, but it looks like it doesn't work with it.
I extended my cluster's config with the following code :
upstream_bind_config:
source_address:
address: <IP_ADDRESS>
port_value: 9999
After that I setup a socat sender to my envoy listener socat -d -d - udp:<IP_ADDRESS>:10020 and a socat receiver as the upstream host socat -d -d udp-l:19000 -
Results from the receiver:
2021/03/17 14:10:30 socat[28284] N accepting UDP connection from AF=2 <IP_ADDRESS>:51755
It should be ...from <IP_ADDRESS>:9999. 51755 is chosen by envoy randomly I guess.
If I try the same setup with a simple HTTP router setup it work as I expected:
socat -d -d tcp-l:19000 - 2021/03/18 13:12:02 socat[10238] N listening on AF=2 <IP_ADDRESS>:19000 2021/03/18 13:12:26 socat[10238] N accepting connection from AF=2 <IP_ADDRESS>:9999 on AF=2 <IP_ADDRESS>:19000
Maybe this functionality is not implemented in the UDP pipeline? Not sure, but definitely interesting.
WDYT?

I think there is confusion here. There is the UpstreamBindConfig message, which nothing references, and should be deprecated, and the upstream_bind_config field, which actually has message type BindConfig. Re: UDP support, tagging @danzh1989 @alyssawilk

I think there is confusion here. There is the UpstreamBindConfig message, which nothing references, and should be deprecated, and the upstream_bind_config field, which actually has message type BindConfig. Re: UDP support, tagging @danzh1989 @alyssawilk

Yeah sorry, you are right. I meant upstream_bind_config instead of UpstreamBindConfig. I understand that it should be deprecated. Thanks for tagging them.

Maybe this functionality is not implemented in the UDP pipeline? Not sure, but definitely interesting.

Can you open a separate issue on this? I can fix this. I assume your full config is using udp_proxy? The problem with bind config with a single port is it breaks session tracking, so it needs some thinking. Let's discuss in a different issue.


Custom bid button

Working but buttons still need aligning for both normal and ElvUI.
Closes #148

@Peleccotur  please double check if this looks good :D


Bind Channel Data

I am having issue with Bind channel data, want to bind Broadcast data or RPC data so that doesn't goes to other room.

show some codes ??


Non-async event loop model

@drmingdrmer it's written -
- [x] Non-async event loop model(main loop: `Raft::run()`).

But the run method is async -
https://github.com/drmingdrmer/one_file_raft/blob/ba379c2c831f2adaae1b70e812d76ccb32187c82/src/lib.rs#L249

It seems you're using tokio's watcher and mpsc that is driven by async runtime.

You are right...
I should remove that statement.


I can’t install / configure any type of Notification service

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

📝 Describe your problem
I can’t install / configure any type of Notification service? I have tested with Telegram, SMTP and Discord. I can save them but when I’m tying to test it takes forever and I’m getting an error like EIA GAIN or something similar.
Installed local using the installation script in OPT.
🐻 Uptime-Kuma Version
1.17.1
💻 Operating System and Arch
Raspberrry Pi
🌐 Browser
Chrome
🐋 Docker Version
No response
🟩 NodeJS Version
No response

It looks it cannot resolve domain for some reason.
Could you try curl https://google.com and ping google.com

Ah! Embarrassing!
But now it works thx buddy.


Configurable timeout for custom operation handler

Is your feature improvement request related to a problem? Please describe.

If a custom operation handler/(process based) plugin does not return, then thin-edge will wait forever to return. In this instance it would cause problems with the transition of future operations of the same type (for some cloud providers), and it would use unexpected resources.
Describe the solution you'd like

The custom operation handler configuration file (e.g. /etc/tedge/operations/c8y/c8y_Command) should support a timeout field which lets the user specify the timeout in seconds for the process being called. If the process does not exit within the timeout period, then the process should be killed (by sending a SIGTERM), and if the process does not exit after 60 seconds, then a SIGKILL should be sent.
Requirements

Add support for an optional timeout field in the custom operation handler configuration. The timeout should be defined in seconds (as an integer)

The timeout field should be optional. If it is not defined then it should assume a default of 300 seconds. The default should be configurable via the tedge.toml file.

If the timeout expires, then a SIGTERM signal should be sent to the process. If after 60 seconds (after sending the SIGTERM), the process still has not exited, then the process should be forcefully shutdown by sending a SIGKILL signal. The default should be configurable via the tedge.toml file.
If the process is killed, then the operation should be set to FAILED and the failure reason should say Process timed out after {timeout} seconds\n{stderr}

Example: Custom operation handler configuration file with timeout defined
[exec]
  topic = "c8y/s/ds"
  on_message = "511"
  command = "/usr/share/tedge-contrib/bin/handle_command.sh"
  timeout = 60

Describe alternatives you've considered

On a timeout, thin-edge.io could just send a forceful SIGKILL to the spawned process, however that could have unexpected negative effects. So it would be more useful to provide a mechanism for the process to gracefully shutdown (as you can trap SIGTERM but not SIGKILL)
Additional context

Use 7200 seconds as a default value if the custom operation file does not include a timeout property

QA has thoroughly checked the feature and here are the results:

[x] Test for ticket exists in the test suite.
tests/RobotFramework/tests/cumulocity/custom_operation/custom_operation_reload/dynamically_reload_operation.robot
tests/RobotFramework/tests/cumulocity/custom_operation/custom_operation_timeout/custom_operation.robot
[x] QA has tested the feature and it meets the required specifications.


cmd/vet: detect mismatch in no. of columns and expressions in sql queries

What version of Go are you using (go version)?

$ go version
go version go1.11.2 linux/amd64

Consider a sql query like this -
_, err = db.Exec("insert into table (col1, col2) values ($1, $2)", param1, param2)

Now, it let's say that you get a quick feature request to add a new column, you do -
_, err = db.Exec("insert into table (col1, col2, col3) values ($1, $2)", param1, param2, param3)

Let's assume you are lazy programmer who doesn't write tests. So everything compiles fine and you deploy. Until you get this error in prod -
 pq: INSERT has more target columns than expressions
All because you missed a $3.
Alternatively, you might add the $3 and forget to add the col3, in which case, the error is -
 pq: INSERT has more expressions than target columns
This can also happen while removing a particular column from a query. Another scenario can be when you forget to add/remove the param3, although that has been a rarity for me. It is also difficult to stumble into this in an UPDATE query since you will have values in the format of col=$1 pairs.
But I have been bitten by the first 2 errors way too often, and wanted to check whether it's a good idea to have a vet check for this. Or whether it is feasible at all in the first place to do.
/cc @mvdan @kardianos
Please feel free to close if this doesn't make sense, or not feasible to do.

Sounds reasonable, and reminds me of the checks that already take place for fmt.Printf.
The check ticks the correctness vet requirement, since a different number of arguments is definitely a bug. Precision shouldn't be a problem either, as it should be easy to avoid false positives. Frequency is always a bit more hard to prove - do you have any proof of people running into this issue besides your own experience?
/cc @alandonovan @josharian

do you have any proof of people running into this issue besides your own experience?

I don't. Maybe we can spread this bug around and let people +1 or -1 the issue and gauge reaction.

This would be great for an external tool.
I'm not sure it could properly lex SQL server, pg, MySQL, Oracle, both named and indexed(@ $ :), understand comments (vendors support different comment styles), properly handle :: symbols but reading :N vars. It would need to handle T-SQL and PL/SQL.  As soon as the sql string was not a constant it would need to ignore the check.
This would be fine in a limited case for an external tool.

The query strings are interpreted by the driver and are database specific. PostgreSQL uses $1, MySQL uses ?, SQLite can use ? but has others. Any check would need to understand SQL and dialects for all common servers in order to know if there's a problem at compile time.

I didn't know that database/sql had to work with many syntaxes - then perhaps it's too complex of a check for vet. I'm suddenly less sure that a precise check would be easy to do :)
I agree that an external tool could be a good start, to gather data about the check's viability and usefulness.

Yeah .. that's why I thought it wouldn't be feasible. Maybe I will create something just for postgres since I need it.
Closing. Thanks for the input everyone.

It seems like a good application for a static checker. SQL is a fairly widely used standard package, SQL queries would benefit from detection similar to printf format strings. That said, SQL is much less frequently used than printf, and printf misformatting often goes undetected because it does not return an error, whereas a malformed SQL query is destined to return an error and such errors are invariably checked, so your checker will uncover relatively few problems in practice.
If you proceed, I suggest you use the new golang.org/x/tools/go/analysis.Analyzer API so that the checker can be freely incorporated into vet or other tools. Take a look at the existing printf checker as a starting point. You should attempt to quickly skip the analyzer if the package does not import database/sql, or you should attempt to identify and check db.Exec wrapper functions similar to the way we identify and check printf wrapper functions in packages other than fmt.

Awesome, thanks Alan !


[BUG] If a field is outside the image nothing is indicated in overlay manager

There log file contains ERROR: Field 'ZWO ' is outside of the image but nothing in the Overlay Editor to indicate that OR to fix it.  The user has to know which .json file to fix and manually do so.

I had this issue also. While I was learning how to use the overlay editor, I think I put ${CAMERA_TYPE} ${CAMERA_MODEL} at a huge "y" position. Or perhaps something put the item there by default?
The error log reported:
ERROR: Field 'RPi ArduCam_16_MP' is outside of the image

I found this configuration in allsky/config/overlay/config/overlay.json, with "y" value of 3008. I changed that to 200, then the item showed up in the overlay editor, where I could delete it.
You could test this by typing in an off-image value in the x or y Position fields.
I added the file to the error message. Is it only ever _overlayConfigFile which can have these items?
    652             if outOfBounds:
    653                 s.log(0, f"ERROR: Field '{fieldLabel}' is outside of the image. Check config in {self._overlayConfigFile}")

@morrowwm, the default position for CAMERA_TYPE, CAMERA_MODEL is fixed in the next release.  The current location assumed it was on an RPi HQ camera or a high-resolution ZWO camera.
This Issue is to have the Overlay Editor tell you when a field is outside the image and to put it somewhere in the image so you can fix it or delete it.  That should eliminate the need to change the outOfBounds message, although I suppose it should say "Fix in the Overlay Editor".

OK, good to know.

Fix committed to the next release branch


How to calculate AUC P/R/F1?

I'm trying to compare the results in the paper with my own but I get wildly different results for AUC values.
I'm using
from sklearn import metrics

metrics_json = json.loads((pred_dir/"eval_bg_reprojected.ply"/"metrics.json").read_text())
auc_precs = sklearn.metrics.auc(metrics_json["thresholds"], metrics_json["precs"])

For comparable precision values I get very different AUC precision values (BG scene):
28.6 vs 86.25 (mine)

Hi, we define the AUC of the F1 score as the area under the curve of the F1-threshold plot, not the P-R curve in sklearn. The same holds for the AUC of Precision and Recall. Details can be found in supplementary material


[F] Add insertColumns() function

🚀 Feature Proposal
Similar to the existing worksheet.insertRows() it would be useful to have the corresponding method for columns.
Motivation
I'd like to insert columns with styles, similar to how I do so with rows.
Example
worksheet.insertColumns(colNum, newColData, 'i+')

Here's my workaround, inspired by insertRows
import Excel = require('exceljs')

export function insertColumns (worksheet: Excel.Worksheet, pos: number, values: object[][], style = 'n'): void {
  worksheet.spliceColumns(pos, 0, ...values)
  if (style !== 'n') {
    // copy over the styles
    for (let i = 0; i < values.length; i++) {
      if (style[0] === 'o' && worksheet.getColumn(values.length + pos + i) !== undefined) {
        copyStyle(worksheet, values.length + pos + i, pos + i, style[1] === '+')
      } else if (style[0] === 'i' && worksheet.getColumn(pos - 1) !== undefined) {
        copyStyle(worksheet, pos - 1, pos + i, style[1] === '+')
      }
    }
  }
}

function copyStyle (worksheet: Excel.Worksheet, src: number, dest: number, styleEmpty = false): void {
  const cSrc = worksheet.getColumn(src)
  const cDst = worksheet.getColumn(dest)
  cDst.style = cSrc.style // copyStyle(cSrc.style)

  cSrc.eachCell({ includeEmpty: styleEmpty }, (cell, rowNumber: number) => {
    worksheet.getCell(rowNumber, dest).style = cell.style // copyStyle(cell.style)
  })
  cDst.width = cSrc.width
}

Any update?

I run into this problblem and made my one whery similar workaround like johnpeb
But i have to admite that this workaround doesn't deal with formulaes etc. So it's not triggering them to change, neither it moves selection lists for cells. And on any not really simple worksheet all this causes confusion.
So, any ideas how to achive proper column inserting?


Managing file uploads in HTML forms using PHP

Be sure to visit our Resources Page for tools, resources, and example articles to go over.
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
We're looking for the first 2-3 paragraphs of the article that appropriately summarize what your article will be about.
NOTE: We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
Proposed title of article
Managing file uploads in HTML forms using PHP.
Introduction paragraph (2-3 paragraphs):
In today’s world, files are highly exchanged, especially over the internet. For interaction, HTML also allows the upload of files, this ranges from images, videos to pdf documents. Websites use these files for various uses such as profile pictures and also exchange of information among users in web apps. In this tutorial, we will look at how to use HTML forms and PHP to allow the uploading of files to a website.
Prerequisites.
How to create HTML forms.
Key takeaways:
What are the 3-5 most important things the reader should understand or be able to do after reading this article? Use this area to get your ideas down on the bulk of your article or tutorial.

configuring PHP to allow file uploads
2.Creating the upload file PHP script
Steps to make file upload secure

References:
Please list links to any published content/research that you intend to use to support/guide this article.
N/A

good topic @Dyrstiu - approved


Think of how we implement database

Database implementation
We need to design how our application is going to be interacting with the database.
What we know

We are using firestore as the database
We are working with java and android studio, which has a straight forward api to link with firestore

Design question

Should the database be its own class.
How do we design the interface for this class
If we write an interface, should it be in its own file, or should we use a nested interface design pattern?

we could set collections as profile names, and make the documents under each collection to store Item objects?


More flexible/generic queries? [Willing to submit a pull request for!]

I'm ultimately looking for a way to get more dynamic sorting abilities w/out having to resort to a buildQuery.  I frequently just want to have 1 part of my query change based on inputs, and rewriting the whole thing into a buildQuery is rougher.  I'm willing to code up and submit these more generic functions.
For instance, instead of .sortByFinishedDesc() and .sortByFinished(), I'd propose the more generic:
.sortBy('finished')  or .sortBy('-finished')
  QueryBuilder<IsarGameResult, IsarGameResult, QAfterSortBy> sortBy(String field) {
    return QueryBuilder.apply(this, (query) {
      Sort sort = Sort.asc;
      if (field.length > 0 && field[0] == '-') {
        sort = Sort.desc;
        field = field.substring(1);
      }
      return query.addSortBy(field, sort);
    });
  }

This would enable easier semi-dynamic query building.
Thanks for your time and consideration,
Nick

AFAIK, Isar is written in Rust, so queries in Dart would be pointless (and VERY slow).
Also, that exactly same thing could be achieved by a Stream map or where function.

I think the reason has less to do with Rust and more to do with type safety in Dart


[owners] make the check have an "in progress" status (yellow dot) when PR has full coverage, but no approvals yet

So:

Green (success): all approvals given
Yellow (in_progress): current reviewers can give approval, but no approvals were given yet
Red (action_required): current reviewers cannot give approval

That way most PRs will be yellow, not red, because the bot usually auto-assigns enough reviews to cover
/cc @ampproject/wg-infra @jridgewell

IIRC, there was a previous discussion on this that I’m hoping @rcebulko can link us to.
I’ll add a new state to the list:

Red (action_required): check errored for some reason.


[Terminal Chat Setup] App link like ms-terminal-can://... doesn't launch Terminal

Windows Terminal version
1.23.3091.0, 1.23.3101.0
Windows build number
10.0.22631.0
Other Software
No response
Steps to reproduce

Launch Settings
Navigate to Terminal Chat (Experimental)
Expand GitHub Copilot under Service Providers
Click Authenticate via GitHub
Authenticate and approve access to GitHub account in browser
Click "Open Terminal Canary" in resulting browser modal dialog

Expected Behavior
Windows Terminal Canary should launch and receive the auth token from GitHub to complete GitHub Copilot setup for Terminal Chat.
Actual Behavior
Windows Terminal Canary does not launch. This does not work from the default browser (Chrome) nor from Edge.

The same for me. It looks like Windows Terminal Canary is not registered to handle ms-terminal-can://...
I am on windows 10

I am having the same issue.  I can not find any solution online.

My settings are as @tino-github ’s, please do not close.

same issue for me. cannot use copilot cli because of this

We're struggling to get a repro. Can one of you with a repro provide a screenshot of the resulting error /?

tino describes the exact same problem as I am having.
I try to follow the following instructions: https://devblogs.microsoft.com/commandline/github-copilot-in-windows-terminal/
I am able to complete steps 1-3 of the setup. but after logging it github and authorizing windows terminal access I am shown this webpage:

I am not automatically re-directed so I try clicking the hyperlink called 'this setup page' which is a url like this:  ms-terminal-can://github-auth?code=xxxxxxxxxxxxxxxxxxxxx&state=xxxxxxxxxxxxxxxxxxxxxxx
clicking the link does nothing.
I check in windows the default app to open this link, and it seems correct, but will not work.

Is the windows registry incomplete?

Shouldn't there be subfolders '/shell/open/command' with a path to executable plus arguments ???

For everyone facing this issue - are you launching Windows Terminal Canary elevated/as administrator? If so we have a temporary fix - launch Canary unelevated, complete the whole Github Copilot auth flow, and then switch back to elevated - your credentials will already be stored and you will be able to use Terminal Chat.
If anyone is experiencing this issue while not running elevated/as administrator, please let us know!

I am not running it as admin

@PankajBhojwani, that worked for me at least! Thanks!

I am not running it as admin

@lly-c232733 Hmm... A few questions from the team:

Do you have UAC on?
Can you share a copy of your settings.json file?

UAC:

Settings:
{
    "$help": "https://aka.ms/terminal-documentation",
    "$schema": "https://raw.githubusercontent.com/microsoft/terminal/main/doc/cascadia/profiles.schema.json",
    "actions": [],
    "copyFormatting": "none",
    "copyOnSelect": false,
    "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
    "keybindings":
    [
        {
            "id": "Terminal.CopyToClipboard",
            "keys": "ctrl+c"
        },
        {
            "id": "Terminal.PasteFromClipboard",
            "keys": "ctrl+v"
        },
        {
            "id": "Terminal.DuplicatePaneAuto",
            "keys": "alt+shift+d"
        }
    ],
    "newTabMenu":
    [
        {
            "type": "remainingProfiles"
        }
    ],
    "profiles":
    {
        "defaults": {},
        "list":
        [
            {
                "commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "hidden": false,
                "name": "Windows PowerShell"
            },
            {
                "commandline": "%SystemRoot%\\System32\\cmd.exe",
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "hidden": false,
                "name": "Command Prompt"
            },
            {
                "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
                "hidden": false,
                "name": "PowerShell",
                "source": "Windows.Terminal.PowershellCore"
            },
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": true,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl"
            },
            {
                "guid": "{17bf3de4-5353-5709-bcf9-835bd952a95e}",
                "hidden": true,
                "name": "Ubuntu-22.04",
                "source": "Windows.Terminal.Wsl"
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            },
            {
                "guid": "{3195db66-1ccf-51f1-a7d7-903b120e7e80}",
                "hidden": false,
                "name": "Developer Command Prompt for VS 2022",
                "source": "Windows.Terminal.VisualStudio"
            },
            {
                "guid": "{bb0022f9-b333-5771-a0a8-d6c450edc62b}",
                "hidden": false,
                "name": "Developer PowerShell for VS 2022",
                "source": "Windows.Terminal.VisualStudio"
            },
            {
                "guid": "{01c82842-7506-59a8-8f62-f21b72def779}",
                "hidden": true,
                "name": "Developer Command Prompt for VS 2019",
                "source": "Windows.Terminal.VisualStudio"
            },
            {
                "guid": "{d6893382-09c1-5805-a942-efd20da6fcf3}",
                "hidden": true,
                "name": "Developer PowerShell for VS 2019",
                "source": "Windows.Terminal.VisualStudio"
            },
            {
                "guid": "{16208362-94fc-5b1f-a491-5b2624d5ab56}",
                "hidden": true,
                "name": "Visual Studio Debug Console",
                "source": "VSDebugConsole"
            },
            {
                "guid": "{51855cb2-8cce-5362-8f54-464b92b32386}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc"
            },
            {
                "guid": "{4ff56d04-d9cf-57ea-bae2-ad396374e7e3}",
                "hidden": false,
                "name": "Ubuntu 22.04.5 LTS",
                "source": "CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc"
            }
        ]
    },
    "schemes": [],
    "themes": []
}

Any update?


Documentation: Intro link serving 404

Version
No response
What browsers are you seeing the problem on?
Chrome, Firefox, Safari, Microsoft Edge
What happened?
When clicking on the intro link within the https://kaboomjs.com/doc/setup page
I was brought to a 404 page when I expect to be served this md file: https://github.com/replit/kaboom/blob/master/doc/intro.md

I believe this is caused because the link is going to the intro.md and not intro:

Example shown on the main page:

What's the expected behavior?
To be served the intro.md page
Minimum reproducible code
No response
Live demo
No response

Does it still 404 for you? It seems to work for me now

Perhaps they're looking at the v3000 docs? This link doesn't work for me either: https://kaboom.replit.repl.co/doc/intro

Greetings,
The 404 still persist on https://kaboomjs.com/doc/setup ( Don't know what ver the doc is )
When clicking on the link within Lighter Template intro tutorial, you will be redirected to a 404 page.

This is due to us redirected the user to intro.md, rather than intro
I hope this clarify the issue.

Seems to be working fine now. Can you confirm @rmhs345 ?

Just opened a PR that should address the issue (perhaps not for non-beta docs if those are not being deployed anymore)


Query rewrite for partition skipping index

Description
TODO
Issues Resolved
https://github.com/opensearch-project/sql/issues/1602
Check List

[ ] New functionality includes testing.

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Closing. Will raise new PR after rebase on https://github.com/opensearch-project/sql/pull/1658.


[chore] updated packages, fixed build, lowered rxjs peerDependency version

This PR updates some packages (except webpack update to v 5.0.0 that requires build config changes)
Lowers peerDependency on RxJS (tests work starting from 6.0.0)
Enables tsc downlevelIteration for for..of on Map.

I'll leave it up to you to merge this ok? :)

that downlevelIteration adds to the lib final size a bit.
we might optimize this later


Performance / bug fixes / simplification

Try to load numpy and pandas librairies as late as possible
Fix bug on min_value on IntegerField
Fix bug on MinLengthValidator
Added conditional and calculated functions on model
Documentation improvements
Fixed bug on start_project (created a spider.py file instead of spiders.py)
Improved test classes and functions

The logger prints two times. Maybe because it is reinstantiated in the start command


feat(modules/secret-manager): add support for version_destroy_ttl

Closes #2644

Checklist

I applicable, I acknowledge that I have:

[X] Read the contributing guide
[X] Ran terraform fmt on all modified files
[X] Regenerated the relevant README.md files using tools/tfdoc.py
[X] Made sure all relevant tests pass

Thanks for clean PR @frits-v !


Add Logger interface

@superbaddude will this suffice for passing in your log4go library? It seemed like the path of least resistance to keep a similar interface to log package, but I could be persuaded otherwise if there is a good argument for changing the function names.
To allow for different logging endpoints we'll introduce a Logger
interface that will be passed into the pipeline during initialization.

Add Logger interface
Update pipeline to use Logger instead of log

That looks like it will work to me.


Add fpetkovski to triage list

[ ] I added CHANGELOG entry for this change.
[x] Change is not relevant to the end user.

Changes
Add myself to triage.
Verification
Lost of unit and e2e tests. Benchmarks will follow soon.

Looks like it's time to automate the signoff :)


difference-of-squares: synchronize tests with x-common

The canonical test data of difference-of-squares has recently been modified in x-common. This pull request synchronizes the corresponding tests in the Java track with the generic data.
In short, the test inputs are changed to 1 and 5 and 10 for each of the three tested methods.

Reviewer Resources:
Track Policies

Awesome, thanks! I've recently started adding version information to test suites when I update them to make it a little easier to identify when a suite has fallen behind the canonical data. Would you be able to add the following comment right above the test class declaration?
/*
 * version: 1.1.0
 */
public final class DifferenceOfSquaresCalculatorTest {

Apart from that nice-to-have, this looks 💯 to me!

Done. Yes, this makes sense to keep the version numbers of the generic and concrete test suites in sync 👍

Thanks, @weibeld, great work!


Update Model.php

this is a lot more useful to see which model has loaded when analysing log files.

Not a bad idea in principle, but your patch changes the semantics of what is supposed to be logged there.
That message is supposed to tell you that CI_Model was loaded, which only happens once. Incidentally that also means it's in the wrong place, but so is yours as a lot of developers would override the constructor in their own models. That is, both the old message and yours need to be moved into CI_Loader::model() (or one of the methods it calls, if any).
In addition, please follow our styleguide and be consistent. This is a one-line patch that's supposed to add a single word and yet you've managed to do this:
// Old/current version:
log_message('info', 'Model Class Initialized');

// Your proposed version:
//
// - Removed space after the comma
// - No space before concatenation, yet there's a space after it (there should be none)
// - Would result in a message lacking space between the colon and the class name
// - Typo in "initialised", which already existed as "Initialized" (s/z)
log_message('info','Model class:'.get_class($this). ' initialised');

I am from Australia, so we use English spelling here. ;-)  or we spell correctly. ;-)
I started a new project today and saw my overrides and thought why not make a PR?
if you could add it to the loader it might seems a better fit.  I found this to be useful years ago before I had decent xdebug integration. Not so much of an issue now.


Run e2e tests against Devnet

Motivation
As a way to also test the devnet, we need the e2e tests to run against it also
Proposal
Implement the config for that
Test Plan
WIP

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #1494

PR #1495   👈

This stack of pull requests is managed by Graphite.


Please remove the dependency on the crate glsl-to-spirv because it is unmaintained and abandoned

See here.

Hi @yurivict, alternatives are still not ideal. Only shaderc will take quite a few minutes to compile in the first compilation or after cargo clean. And Naga does not support quite good yet glsl as input.
Ideal scenario will be using naga with wgsl, but that will require a lot of changes across the API, and I am not capable to fo that really get now fue time restrictions. But I am open to review and guide any PR if somebody is willing to put the work on it.
As alternative, you can disable glsl to spirv and enable shaderc compilation using feature flags in your cargo.toml

I wasn't able to build https://github.com/woelper/oculante because it used notan and glsl-to-spirv fails to build.
I guess I would just wait until this problem is resolved.

I see, then it's an easy solution, we can add shaderc as a feature flag on oculante too. I am leaving there a comment.


Migrate factors & sha examples with shared methods

A variation on #373 with a shared methods folder and crate. Now edited with updates based on discussion with @flaub on how to unify the methods crate, not just directory.
Relative to #373, this we no longer need the factors-methods vs sha-methods disambiguation -- now both are part of methods and look similar to how they did as standalone examples.
The crate and directory structure is more different from standalone examples than it was in #373, however. Instead of a structure matching https://github.com/risc0/risc0-rust-starter, the host code is pulled up to the root directory, and the guest code now lives in a shared methods folder. This also means that if someone goes straight to this examples directory from our getting started page, they will be looking at
examples
-- factors
-- methods
-- sha

which IMO is not very clear about what examples we have (or even how many examples we have). Perhaps we could wrap the methods directory in a common directory to make it clearer what's happening. Fundamentally though, I'm finding this split structure hard to explain and likely to confuse newcomers. I do not relish adding explanation to our first tutorial clarifying which parts of the examples directory are and are not part of the factors example. This isn't unworkably confusing, but it seems substantially more confusing than deconflicting the methods name by calling it factors-methods or sha-methods.
I think we should land #373 instead.

Is this ready to land? I'd like to get some test coverage in for the upcoming release

Is this ready to land? I'd like to get some test coverage in for the upcoming release

Do we want all examples in and tested? If so then no, if it's ok to do a partial land and then finish later then yes it can land.


Some Map and Set collection methods fail tests

I've created a pull request to illustrate this behavior. Please visit https://github.com/near-examples/nfts/pull/14. I'm copy/pasting the details mentioned in the description now:
The purpose of this PR is to share with the NEAR Collective in illustrating an issue that seems to be occurring with the collections Set and Map when applied to testing in the mocked blockchain context.
Note line 107 of contracts/rust/src/lib.rs calling a function workaround(). This workaround essentially inserts useless values into a Map and Set. After doing this, the tests work as expected. If the call to workaround() is commented out, we receive:

thread 'tests::add_revoke_access_and_check' panicked at 'called Result::unwrap() on an Err value: InconsistentStateError(IntegerOverflow)', /Users/mike/.cargo/registry/src/github.com-1ecc6299db9ec823/near-sdk-0.9.2/src/environment/mocked_blockchain.rs:397:9

You'll note that there are two mocked context happening here. This is modeled after the tests found here:
https://github.com/near/near-sdk-rs/blob/master/examples/fungible-token/src/lib.rs#L295-L311
This seems of high importance for folks building Rust contracts and trying to write tests for the two data structures mentioned. For what it's worth, I believe this was specifically happening on the Set's .remove and I also saw this behavior on .clear.

This has lower priority than the work on the core contracts. Assigning it @evgenykuzyakov since he recently fixed a bug in the collection.

@amgando and I were seeing the same exact error as of commit https://github.com/near-examples/nfts/pull/9/commits/80b1ff17d333d80f28a3a87ce9f807b44e2b7bee in our AssemblyScript contract tests, and the same workaround (https://github.com/near-examples/nfts/pull/9/commits/2f5b6677be4635d623fd1451648b8ecb9c95b22e) fixed the issue there as well – not sure if this helps track down the bug.

Okay, I believe the storage_usage is not updating properly for testing. For some reason, the workaround linked there will actually increase it, but it won't otherwise.
For Rust tests we can bump it up with the VMContext by setting a larger value like here:
storage_usage: 300,
I'm not sure what the solution is for AssemblyScript tests.
By the way, I tried this on testnet and the storage is working as expected. (I added some values to a Map, checked the storage_usage via a helper function, added some more and saw it increase.)
So this does seem to be a problem in testing only.
Since testing is the way developers iterate, a fix would be really good though.

Closing, basically I think if we're going to be switching contexts for testing, we either need to give it a ton of storage_usage or make sure we "reuse" it. This likely applies to other items like attached_deposit, prepaid_gas, etc.


[AppConfig] Prepare for v1.1.7 patch release

Update release version to next version, v.1.1.7 from v1.1.6

Create a release branch to release a patch version


WIP: initial emission of constants

@cfallin, based on what we discussed in Zulip and #1385, here's a first pass on a way to emit constants using MachBuffer::defer_constant. Note that I had to do two mappings--one from Constant to UsedConstant and another from UsedConstant to MachLabel--in order to make this work ("work" is too strong--"compile"). I'm interested in your feedback before I fix this up and improve gen_constant.

At a high level: I think we can actually do things with one less level of indirection

If we want to retain the de-duplication of constants from the constant pool AND avoid comparing long byte sequences, we need to keep track of what Constant handles have been used during lowering. Even if I reserve the next range of MachLabels after the number of blocks for constants, we still need to keep track of a map of Constant to MachLabel so I can see if we've used a constant previously.
Additionally, some structure needs to map those MachLabels back to their constant data so they can actually be emitted once we have a MachBuffer available during VCode::emit. So we need another map of MachLabel to ConstantData so that we can then call MachBuffer::defer_constant after all instructions have been emitted. This map must be separate from the Constant to MachLabel map because during lowering we can generate new constants that will not have a Constant handle (since we can't modify the ConstantPool in self.f.dfg).
Now, where we put these two maps is debatable (they could go in the same struct, different structs, be attached to Lower, etc.) but I don't see how we get rid of either of them. What do you think?

Hmm, yes, you're right; I hadn't been considering how deduplication would work. I agree that we need some sort of remapping in order to redirect duplicated constants to the original copy.
I do think that it would be good to find a way to make the deduplication optional; I want to keep the "only do the barebones fast code emission" path as true to that original spirit as possible. Given that many constants will be coming from the CLIF anyway, where they're deduplicated already, I would hope not to lose too much by omitting this (though we can certainly measure!). From your design here, it seems that we could do this with a hybrid data-structure of some sort; maybe an enum with VCodeConstantTable::List { constants: Vec<ConstantData> } and VCodeConstantTable::Deduped { constants: HashMap<ConstantData, VCodeConstant> } ?


Draggin via touch breaks the display

When doing drag and drop using mouse, it works just fine.
However, once switched to a touch device view in a browser, the display is broken. Strangely, it also won't allow any right click on the page on any element afterwards. After checking the DOM, it seems like the copy of the dragged node is added to the DOM, but never removed.
Switching back to the mouse device doesn't fix it.
This is how it looks like.

Tested both on Chrome 122.0.6261.129 and Firefox 123.0.1.
P.S. Can we get an option to disable opacity on a dragged node?

@Techn1c4l Hey there! Would you mind showing a reproduction of how you get into the broken state? I am having a hard time replicating on my end.

@Techn1c4l Hey there! Would you mind showing a reproduction of how you get into the broken state? I am having a hard time replicating on my end.

I tried to reproduce it on the StackBlitz, but it works just fine there. Guess I'll have to look into my project a bit more.

Hi !
I have the same problem, it's appear when using handleEnd function

code : https://github.com/Leorio21/DragAndDropBug
deploy : https://drag-and-drop-bug.vercel.app/


[CELEBORN-696][FOLLOWUP] Remove new allocated location's workers from pushExecludedWrkers should also remove peers

What changes were proposed in this pull request?
Remove new allocated location's workers from pushExecludedWrkers should also remove peers
Why are the changes needed?
Does this PR introduce any user-facing change?
How was this patch tested?

ping @waitinfuture


Polipo and Delete Method

Using polipo 1.0.4 (debian stable) and I see that this bug is still around: http://sourceforge.net/p/polipo/mailman/message/4011605/

Fixed by 108242d1edc21c32453b9e0a69d449a03fb85430.  Thanks.


Exposing public APIs for use in code

I've found that the set-zoom-in-prop way of programmatically changing zoom doesn't work if you've called map.fitBounds(). The map is no longer responsive to zoom or center changes. This exposes setZoom, setCenter, etc, and allows for continued programmatic map manipulations.

Thanks for the contribution!
I agreed it's challenging without these imperative APIs, but I'm pushing it hard not to bring this kind of imperative stuff into this repo. Unfortunately, unless there's no more elegant solution, it won't get merged.
Close for now.

"elegant solution" seems a poor expression compared to the need of this basic features.
At least signal in the readme that this repo doesn't use basic map features


Cookies attribute missing

Tried to re-activate my (Dutch) TGTG integration, but ran into this issue:
Traceback (most recent call last):   File "/home/esilverentand/tgtg_get_tokens.py", line 25, in <module>     print("    cookie: '" + tgtgClient.cookie + "'") AttributeError: 'TgtgClient' object has no attribute 'cookie'
Downloaded the latest version of tgtg_get_tokens.py
Other data is found by the script

Never mind. Had to "pip install" tgtg to 0.14.0 as well

No worries - I've added a line in the release read me :)

Ok, then for completeness also mention that the latest tgtg_get_tokens.py must be used 😉


PR lost from master to main

I saw this was renamed from master to main and was hunting for my PR. It was not in the commit history...
Only via email I found this:

Did something get chomped by the change process?

The lost commit appears to be bea670f

No I think it's there all along in #513. My bad :cry:

No worries 😉


Update sponsorship program with tiered silver

Reflects changes in sponsorship program: Silver annual fee depends on company size, Advisory Council seat only gold and higher, ability to create roadmap projects for platinum and diamond.

ci is not running

https://www.githubstatus.com/


Fix reference server issues related to CORS

The reference server was already configured to use CORS and to be permissive. But there were some quirks to its config that could be improved (especially if anyone were to test using TLS client certs, which means we have to allow credentials in the cross-origin requests).
Also, the "raw response" capability of the reference server was interfering with the CORS middleware. So this fixes that, which in turn activates some alternate behavior in the gRPC Web JS client: apparently, some of the behavior observed was actually the result of failed preflight requests and not the intended behavior of the library 🤦.
On a positive note: it is no longer necessary/useful to add access control headers to raw responses. The CORS middleware now handles that correctly.

cc: @timostamm, @srikrsna-buf


HAS_SPAN / NONATIVEHASH insights

Hi @NicolasDorier, I see that your code is decorated with #if HAS_SPAN / NONATIVEHASH
I understand your reason (you support different TargetFrameworks and some of them doesn't have support for the stuff you use inside these #if blocks)
What I'd like to know, is if you computed someohow the outcome of using Span/ReadonlySpan, ArrayPool, etc...), if you have some kind of benchmark or some consideration about those changes.
I'd want to start implement Span/ReadonlySpan and ArrayPool in Stratis code but before that I'd like to know your experience and considerations on using these classes.
The reason behind this is that during IBD on our node, I see lot of memory spike reported by Task Manager, but almost half of the reported memory is flagged as free memory, and we have high level of fragmentation in the heap.
I think the cause is that current code instantiate too many stuff during serialization and consensus and this causes the memory spike (manually invoking GC.Collect with memory compaction recover lot of memory but this isn't a solution of course)
As a side question: have you thought about some of the crypto classes dotnetcore exposes now, instead of bouncycastle?

I did not do benchmark, but I think the move to span and array pool saved at least 50% of memory allocation. The best is to try NBitcoin.Benchmark to compare.
I am not aware of any dotnetcore class which exist which could replace some of my BouncyCastle stuff.


USHIFT-620: Add a no-build option to configure-vm.sh script

Closes USHIFT-620

@jogeo , can you review and approve the changes before we merge them?

/assign @jogeo

/lgtm


Improve install progress messaging

Description of the new feature / enhancement
The Starting package install... message may give users the impression that the installation hasn't yet started. It could be helpful to switch the messaging to indicate the install is in progress after "a little while".
No indication of installations running
Multiple apps are installing in the background, invisible, even though no arguments were given to do so.
Updating Docker (for example) takes a while, and with winget showing `Starting package install...` instead of `Installing package`, it makes it appear as if it has issues starting the setup, even though it's actually installing in the background.

Proposed technical implementation details

Appending a message:
Installing <packageName> <packageVersion> [<packageIdentifier>]... after confirming the executable launched sounds like a good thing to do.

Originally posted by @Master-Guy in https://github.com/microsoft/winget-cli/issues/1009#issuecomment-1163275889

[Policy] Area-Output


eosio.contract unit_test error “critical check validate()” when added new global table and bps change

i get the an  from the eosio.contract unit_test as follow:
/eosio/1.8/include/eosio/testing/tester.hpp(364): fatal error: in
"eosio_system_tests/vote_producers_in_and_out": critical check
validate() == true has failed [false != true]
terminate called after throwing an instance of
'boost::execution_aborted'
unknown location(0): fatal error: in
"eosio_system_tests/vote_producers_in_and_out": signal: SIGABRT
(application abort requested)
/eosio/1.8/include/eosio/testing/tester.hpp(364): last checkpoint

What I did:

created a second eosio_global_state table (copy&paste) and named it eosio_global_state5 (any other name will also do) and added/changed all the other necessary lines in eosio.system.hpp and eosio.system.cpp (but should also work with any other self created table which should be singleton and global)
changed the unit_test eosio.system_tests.cpp vote_producers_in_and_out so that after the first vote for 21bps the bps produce few blocks and than change all bps at once and than produce a few blocks and here I get the error

and the error only comes when added the extra singleton global table. If I out comment the changes everything works fine again.
code table:
    struct [[eosio::table("global5"), eosio::contract("eosio.system")]] eosio_global_state5 {
    eosio_global_state5(){}

    uint64_t             max_ram_size = 64ll*1024 * 1024 * 1024;
    uint64_t             total_ram_bytes_reserved = 0;
    int64_t              total_ram_stake = 0;

    block_timestamp      last_producer_schedule_update;
    time_point           last_pervote_bucket_fill;
    int64_t              pervote_bucket = 0;
    int64_t              perblock_bucket = 0;
    uint32_t             total_unpaid_blocks = 0; /// all blocks which have been produced but not paid
    int64_t              total_activated_stake = 0;

    time_point           thresh_activated_stake_time;
    uint16_t             last_producer_schedule_size = 0;
    double               total_producer_vote_weight = 0; /// the sum of all producer votes
    block_timestamp      last_name_close;

    // explicit serialization macro is not necessary, used here only to improve compilation time
    EOSLIB_SERIALIZE( eosio_global_state5,
    (max_ram_size)(total_ram_bytes_reserved)(total_ram_stake)
            (last_producer_schedule_update)(last_pervote_bucket_fill)
            (pervote_bucket)(perblock_bucket)(total_unpaid_blocks)(total_activated_stake)(thresh_activated_stake_time)
            (last_producer_schedule_size)(total_producer_vote_weight)(last_name_close) )
};

code:
BOOST_FIXTURE_TEST_CASE( vote_producers_in_and_out,
eosio_system_tester ) try {

const asset net = core_sym::from_string("80.0000");
const asset cpu = core_sym::from_string("80.0000");
std::vector<account_name> voters = { N(producvotera), N(producvoterb),
N(producvoterc), N(producvoterd) };
for (const auto& v: voters) {
  create_account_with_resources(v, config::system_account_name,
  core_sym::from_string("1.0000"), false, net, cpu);
}

// create accounts {defproducera, defproducerb, ..., defproducerz} and
register as producers
std::vector<account_name> producer_names;
{
 producer_names = {"aaaaa1111111", "aaaaa1111112", "aaaaa1111113",
 "aaaaa1111114", "aaaaa1111115", "bbb111111111",
                  "bbb111111112", "bbb111111113", "bbb111111114",
 "bbb111111115", "cccc11111111", "cccc11111112",
                  "cccc11111113", "cccc11111114", "cccc11111115",
 "dddd11111111", "dddd11111112", "defproducera",
                  "defproducerb", "defproducerc", "defproducerd",
 "defproducere", "defproducerf", "defproducerg",
                  "defproducerh", "defproduceri", "defproducerj",
 "defproducerk", "defproducerl", "defproducerm",
                  "defproducern", "defproducero", "defproducerp",
 "defproducerq", "defproducerr", "defproducers",
                  "defproducert", "defproduceru", "defproducerv",
 "defproducerw", "defproducerx", "defproducery",
                  "defproducerz", "defproducesa", "defproducesb"};
  setup_producer_accounts(producer_names);
  for (const auto& p: producer_names) {
     BOOST_REQUIRE_EQUAL( success(), regproducer(p) );
     produce_blocks(1);
     ilog( "------ get pro----------" );
     wdump((p));
     BOOST_TEST(0 == get_producer_info(p)["total_votes"].as<double>
 ());
  }
}

for (const auto& v: voters) {
  transfer( config::system_account_name, v,
  core_sym::from_string("200000000.0000"), config::system_account_name
 );
  BOOST_REQUIRE_EQUAL(success(), stake(v, core_sym::from_string("30000000.0000"), core_sym::from_string("30000000.0000")) );
}

{
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvotera), vector<account_name>(producer_names.begin(), producer_names.begin()+20)));
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvoterb), vector<account_name>(producer_names.begin(), producer_names.begin()+21)));
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvoterc), vector<account_name>(producer_names.begin(), producer_names.begin()+5)));
  produce_blocks(23 * 12 + 20);
}

// give a chance for everyone to produce blocks
{
  produce_blocks(23 * 12 + 20);
  bool all_21_produced = true;
  for (uint32_t i = 0; i < 21; ++i) {
     if (0 == get_producer_info(producer_names[i])["unpaid_blocks"].as<uint32_t>()) {
        all_21_produced = false;
     }
  }
  bool rest_didnt_produce = true;
  for (uint32_t i = 21; i < producer_names.size(); ++i) {
     if (0 < get_producer_info(producer_names[i])["unpaid_blocks"].as<uint32_t>()) {
        rest_didnt_produce = false;
     }
  }
  BOOST_REQUIRE(all_21_produced && rest_didnt_produce);
}

{
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvotera), vector<account_name>(producer_names.begin()+22, producer_names.begin()+44)));
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvoterb), vector<account_name>(producer_names.begin()+22, producer_names.begin()+44)));
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvoterc), vector<account_name>(producer_names.begin()+15, producer_names.begin()+20)));
  produce_blocks(1000);
}

{
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvotera), vector<account_name>(producer_names.begin(), producer_names.begin()+21)));
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvoterb), vector<account_name>(producer_names.begin(), producer_names.begin()+21)));
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvoterc), vector<account_name>(producer_names.begin(), producer_names.begin()+5)));
  produce_blocks(1000);
}

{
  produce_block(fc::hours(7));
  const uint32_t voted_out_index = 20;
  const uint32_t new_prod_index  = 23;
  BOOST_REQUIRE_EQUAL(success(), stake("producvoterd", core_sym::from_string("40000000.0000"), core_sym::from_string("40000000.0000")));
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvoterd), { producer_names[new_prod_index] }));
  BOOST_REQUIRE_EQUAL(0, get_producer_info(producer_names[new_prod_index])["unpaid_blocks"].as<uint32_t>());
  produce_blocks(4 * 12 * 21);
  BOOST_REQUIRE(0 < get_producer_info(producer_names[new_prod_index])["unpaid_blocks"].as<uint32_t>());
  const uint32_t initial_unpaid_blocks = get_producer_info(producer_names[voted_out_index])["unpaid_blocks"].as<uint32_t>();
  produce_blocks(2 * 12 * 21);
  BOOST_REQUIRE_EQUAL(initial_unpaid_blocks, get_producer_info(producer_names[voted_out_index])["unpaid_blocks"].as<uint32_t>());
  produce_block(fc::hours(24));
  BOOST_REQUIRE_EQUAL(success(), vote(N(producvoterd), { producer_names[voted_out_index] }));
  produce_blocks(2 * 12 * 21);
  BOOST_REQUIRE(fc::crypto::public_key() != fc::crypto::public_key(get_producer_info(producer_names[voted_out_index])["producer_key"].as_string()));
  BOOST_REQUIRE_EQUAL(success(), push_action(producer_names[voted_out_index], N(claimrewards), mvo()("owner", producer_names[voted_out_index])));
 }

 } FC_LOG_AND_RETHROW()

my questions are now:

is it a general error from eosio software or just the test enviroment
what do I need to change, so i can add my own global singleton tables and the test will be correct.

Cleaning up old issues so we can focus on more recent open items. Please reopen this ticket if needed. Thank you.


TF XML Ingest

During the course of work on issue 252 in aurora some errors were encountered handling XML data from SPUD.
XML TFs were downloaded from SPUD and subsequently attempted to load into mt_metdata using the syntax.
from mt_metadata.transfer_functions.core import TF
spud_tf = TF(file_path)
spud_tf.read_tf_file()

The downloading of the SPUD XML was done in April 2023 using the script: catalog_SPUD.py
on the earthscope_tests branch of aurora.  The file is in aurora/aurora/test_utils/earthscope/
The result of running this is an archive of local xml files for testing, and a summary csv called "spud_summary.csv"
spud_summary.csv
There were two primary sources for these files:
EMTF_URL = "https://ds.iris.edu/spudservice/emtf"
DATA_URL = "https://ds.iris.edu/spudservice/data"
Ongoing work on issue 252 is using the DATA_URL files.
Iterating over these files resulted in the following results to the read_tf_file() command:
All files from the EMTF_URL encounter the same KeyError with message "field_notes"
Here is a snippet from interactive session:
tf = load_xml_tf(df.emtf_xml_path.iloc[0])
No external_url in EMTF XML
No primary_data in EMTF XML
No attachment in EMTF XML
No provenance in EMTF XML
No copyright in EMTF XML
No site in EMTF XML
Traceback (most recent call last):
  File "/home/kkappler/anaconda3/envs/aurora/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3505, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-14-e6d171691b89>", line 1, in <module>
    tf = load_xml_tf(df.emtf_xml_path.iloc[0])
  File "<ipython-input-13-61506717b967>", line 8, in load_xml_tf
    spud_tf.read_tf_file()
  File "/home/kkappler/software/irismt/mt_metadata/mt_metadata/transfer_functions/core.py", line 1259, in read_tf_file
    tf_obj = read_file(self.fn, file_type=file_type, **kwargs)
  File "/home/kkappler/software/irismt/mt_metadata/mt_metadata/transfer_functions/io/readwrite.py", line 178, in read_file
    return file_reader(fn, **kwargs)
  File "/home/kkappler/software/irismt/mt_metadata/mt_metadata/transfer_functions/io/emtfxml/emtfxml.py", line 1144, in read_emtfxml
    obj.read(fn)
  File "/home/kkappler/software/irismt/mt_metadata/mt_metadata/transfer_functions/io/emtfxml/emtfxml.py", line 330, in read
    self._reader_dict[element](root_dict)
  File "/home/kkappler/software/irismt/mt_metadata/mt_metadata/transfer_functions/io/emtfxml/emtfxml.py", line 545, in _read_field_notes
    if not isinstance(root_dict["field_notes"], list):
KeyError: 'field_notes'

That occurred trying to read a file with content from this example xml

Regarding the DATA_URL files, of 7156 total TF xml files identified during the SPUD scraping process, trying to read these in yielded the following stats:
5373 of the files failed on read-in
1783 loaded successfully
There were four flavours of error:
3238 of the 5373 errors were KeyError: 'field_notes' as above
4 of the 5373  errors were KeyError: `value'
Here an an example xml
780 of the 5373 errors were AttributeError: with message `"'list' object has no attribute 'items'"
Here an an example xml
And finally, 1351 errors were: MTSchemaError:
These split into 1191 with error message:
"Paper Citation Required not found in options list ['unrestricted release', 'restricted release']"
Here an an example xml
and 160 with error message:
"Academic Use Only not found in options list ['unrestricted release', 'restricted release']"
Here an an example xml
For the record, here is an output from a reading operation over all files from 26 May 2023
spud_xml_review_2023-05-26_09:51:58.csv

@kujaku11 After yesterdays updates to the fcs branch of mt_metadata the following stats are compiled:
EMTF_URL Files:
750 Load Successfully
6406 Errors
(Previous 0 Load Successfully and 7156 Errors)
All were KeyError: with message: site

load_xml_tf(df.emtf_xml_path.iloc[751])
reading /home/kkappler/.cache/earthscope/spud_xml/emtf/15027669.xml
No external_url in EMTF XML
No primary_data in EMTF XML
No attachment in EMTF XML
No provenance in EMTF XML
No copyright in EMTF XML
Traceback (most recent call last):
File "/home/kkappler/anaconda3/envs/aurora/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3505, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "", line 1, in
qq = load_xml_tf(df.emtf_xml_path.iloc[751])
File "/home/kkappler/software/irismt/aurora/tests/earthscope/test_load_spud_tfs.py", line 63, in load_xml_tf
spud_tf.read()
File "/home/kkappler/software/irismt/mt_metadata/mt_metadata/transfer_functions/core.py", line 1392, in read
self._read_write_dict[file_type]["read"](self.fn, **kwargs)
File "/home/kkappler/software/irismt/mt_metadata/mt_metadata/transfer_functions/core.py", line 1585, in from_emtfxml
emtfxml_obj.read(self._fn)
File "/home/kkappler/software/irismt/mt_metadata/mt_metadata/transfer_functions/io/emtfxml/emtfxml.py", line 302, in read
attr.read_dict(root_dict)
File "/home/kkappler/software/irismt/mt_metadata/mt_metadata/transfer_functions/io/emtfxml/metadata/site.py", line 104, in read_dict
for element in input_dict["site"].keys():
KeyError: 'site'

Here is an example url for one that encountered this error.

DATA_URL Files:
2614 Load Successfully
4542 Errors
(Previous 1783 Load Successfully and 5373 Errors)
The breakdown of these was
AttributeError    2429
MTSchemaError     1832
KeyError           164
ValueError         117
For the AttributeError case there were three distinct errors encountered:

'str' object has no attribute 'author'               2267
example xml

'NoneType' object has no attribute 'component'        115
example xml

'FieldNotes' object has no attribute 'instrument'      47
example xml

For the MTSchemaError case there were four distinct errors encountered:

Paper Citation Required not found in options list ['Unrestricted release', 'Restricted release']                                    1349
example xml

derived data type not found in options list ['error estimate', 'signal coherence', 'signal power estimate', 'primary data type']     210
example xml

Academic Use Only not found in options list ['Unrestricted release', 'Restricted release']                                           172
example xml

Conditions Apply not found in options list ['Unrestricted release', 'Restricted release']                                            101
example xml

For the KeyError case there was only one errors message: value:          164
example xml
For the ValueError case there were eight distinct subcases, but they were all associated with datetime parsing         117

Could not parse 2003-14-09 into a readable date-time             77
example xml

Could not parse 1996-29-02 into a readable date-time             10
example xml

Could not parse 2008-13-08T00:00:00 into a readable date-time     9
example xml

Could not parse 2008-17-08T00:00:00 into a readable date-time     7
example xml

Could not parse 2008-15-08T00:00:00 into a readable date-time     6
example xml

Could not parse 2008-16-08T00:00:00 into a readable date-time     4
example xml

Could not parse 2009-14-09T00:00:00 into a readable date-time     3
example xml

Could not parse 2010-17-08T00:00:00 into a readable date-time     1
example xml

@kujaku11 Pulled latest mth5 and mt_metadata and re-ran the xml ingest:
AttributeError  dropped from 2429 to 56.  Great progress!
All 56 remaining error messages were of the form:

"FieldNotes object has no attribute 'instrument'"

No other changes observed.

@kkappler Try re-running the xml ingest after pulling fcs branch.  I think I fixed all the bugs?

@kujaku11 Very close!
Only 3 exceptions and 7153 successful ingests.
The remaining errors were all the same:
ValueError
Could not parse string 2011-12-31T24:00:00 check formatting, should be YYYY-MM-DDThh:mm:ss.ns
Here is a sample file
(The emtf_xml are still not reading in though )

@kkappler Nice!
I'm not sure if the ValueError should be handled at this point, but maybe in the future? Need a decent amount of logic to parse that time format.
When you say emtf_xml are still not reading is it the same KeyError: site error?  When I read in the example file from the emtf_url above it reads in fine.  Is there another error?

@kujaku11 I didn't see the above comment in time, but good that it is here for posterity.
Instead, I modified the curl command adding the option: -H 'Accept: application/xml' and rescraped the emtf files.
Here is the summary:
EMTF
7153/7156 read in successfully
3/7156 have error:
KeyError(Comments)
The offending XML IDs are: [13597847, 13597976, 13598200], the first of which can be accessed here.
99.96% of the way there:)
DATA
7152/7156 read in successfully
4/7156 have errors.
3 of these 4 errors are the UTC Midnight timestamp referenced previously, and FWIW, these are the exact same three files that fail for EMTF, so you can use the link above in this post (its for KAK observatory in Japan).
The final error is new since I updated mt_metadata, it is ParseError(no element found: line 253, column 38)
and is associated with this link.
99.94% of the way there:)

These are now all reading in, 7156 emtf and data sourced tf xml

@kujaku11 Using the latest updates to mt_metadata fcs branch we get the summary below

Took 720s to review spud tfs
data error
False    6376
True      780
emtf error
False    6376
True      780

Every error was identical  AttributeError, 'list' object has no attribute 'items'
There was a 1:1 correspondence between data and emtf versions of the TFs, i.e. the emtf version reads in IFF the data version did.
Here is an emtf link
and a data link
corresponding to the first row of the output table
01_spud_xml_review_2023-08-19_121922.csv

@kkappler Updated mt_metadata.transfer_function.io.emtfxml.metadata.Attachment to handle multiple attachments in commit a41ccb6.  See if that works.

@kujaku11 your fix worked on the xml of "emtf" type, but not on the corresponding one of "data" type.

element_dict["attachment"]
Out[1]:
[OrderedDict([('filename', 'kak/kak.mtres.all.1r1.rp')]),
OrderedDict([('filename', 'kak/kak.mtres.all.1r2.rp')]),
OrderedDict([('filename', 'kak/kak.mtres.all.2r1.rp')]),
OrderedDict([('filename', 'kak/kak.mtres.all.2r2.rp')])]

Took 740.s to review spud tfs, running with 1 partitions
.cache/earthscope/summary_tables/01_spud_xml_review_2023-08-22_141418.csv
data error
False    7156
emtf error
False    7156


runtime error

roslaunch livox_odometry livox_odometry.launch save_path:="/home/qx263/livox_mapping/src/odom_path.txt"
... logging to /home/qx263/.ros/log/7909962c-93a2-11ec-9067-e4a7a0481322/roslaunch-qx263-28740.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://qx263:33043/
SUMMARY
PARAMETERS

/PoseEstimation/Extrinsic_Tlb: [1.0, 0.0, 0.0, -...
/PoseEstimation/IMU_Mode: 2
/PoseEstimation/filter_parameter_corner: 0.2
/PoseEstimation/filter_parameter_surf: 0.4
/PoseEstimation/save_path: /home/qx263/livox...
/ScanRegistration/config_file: /home/qx263/livox...
/rosdistro: kinetic
/rosversion: 1.12.16

NODES
/
PoseEstimation (livox_odometry/PoseEstimation)
ScanRegistration (livox_odometry/ScanRegistration)
auto-starting new master
process[master]: started with pid [28750]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 7909962c-93a2-11ec-9067-e4a7a0481322
process[rosout-1]: started with pid [28763]
started core service [/rosout]
process[ScanRegistration-2]: started with pid [28774]
process[PoseEstimation-3]: started with pid [28781]
finished
[ScanRegistration-2] process has died [pid 28774, exit code -11, cmd /home/qx263/livox_mapping/devel/lib/livox_odometry/ScanRegistration __name:=ScanRegistration __log:=/home/qx263/.ros/log/7909962c-93a2-11ec-9067-e4a7a0481322/ScanRegistration-2.log].
log file: /home/qx263/.ros/log/7909962c-93a2-11ec-9067-e4a7a0481322/ScanRegistration-2*.log
[PoseEstimation-3] process has died [pid 28781, exit code -11, cmd /home/qx263/livox_mapping/devel/lib/livox_odometry/PoseEstimation __name:=PoseEstimation __log:=/home/qx263/.ros/log/7909962c-93a2-11ec-9067-e4a7a0481322/PoseEstimation-3.log].
log file: /home/qx263/.ros/log/7909962c-93a2-11ec-9067-e4a7a0481322/PoseEstimation-3*.log
When I play the rosbag, I meet error, I didn't know the reason. I think maybe I used the wrong version of Eigen. Which version of Eigen do you use? And how about the version of Ceres and GTSAM?
Waiting for you reply, thank you!

Hi, thanks for your interest!
we are using:
eigen：3.3.4
ceres：2.0.0.
However, I am fully recommending you just start from our provided docker, which will save you much time.
Bests,

Since no further questions occurred, I will close this issue.


Add spawner type - AreaSpawner

Add support for addtional spawner type - AreaSpawner.
Bonepiles and such.

Should check for location and prefab, to avoid collisions with intentionally added/player-crafted spawners.


choreAdd comments to the job's test cases

What problem does this PR solve?
Add comments to the job's test cases
Check List (For Author)

Test

[ ] Regression test
[ ] Unit Test
[ ] Manual test (add detailed scripts or steps below)
[x] No need to test or manual test. Explain why:

[x] This is a refactor/code format and no logic has been changed.
[ ] Previous test can cover this change.
[ ] No code files have been changed.
[ ] Other reason

Behavior changed:

[x] No.
[ ] Yes.

Does this need documentation?

[x] No.
[ ] Yes.

Check List (For Reviewer who merge this PR)

[ ] Confirm the release note
[ ] Confirm test cases
[ ] Confirm document
[ ] Add branch pick label

run cloud_p0

run external


RuTorrent doesn't connect to an already running rtorrent instance

See title, the irssi instance started by the cronjob works fine, the rtorrent instance does start but does not get connected to by rutorrent however...
When starting rtorrent outside of the cronjob or screen Rutorrent does connect.
If I need to fetch any logs tell me. I'll gladly help :)

Not sure what is happening here. Should not matter where/how rtorrent is started as long as it is started with the right user. If you manually start it using screen does that work?

Yes it does. The one that's supposed to work on boot starts too without errors, but it's just not connectable by rutorrent for some reason.

What OS are you using?
Have you tried rerunning the script, if not use 'rtsetup release' or rtgetscripts to update to the latest version and rerun rtinst.


It doesn't work in the latest version of obsidian

Hi! I REALLY like this plugin because it can help me change the background of my notes and have so many beautiful dynamic background effects.
But when I upgraded obsidian from v.0.14.6 to v.1.1.9, it doesn't work anymore, neither static wallpaper images nor dynamic backgrounds work anymore.Even if I reinstalled obsidian, the situation still hasn't changed.I noticed that the plugin was last updated on 11.30, hope you can fix this problem！

Another small suggestion: can you design two options for the static wallpaper background? One for light and one for dark.  It will be more convenient when switching between light/dark. Thank you!

I am using Obsidian 1.1.9, the Obsidian Dynamic Background pulgin (v1.0.5) works well. You can try to delete the plugin folder (vault/.obsidian/plugins/obsidian-dynamic-background/) and reinstall the plugin again.  You can contact me using WeChat. My WeChat number is: ReadingHere2000.  Thanks for your suggestion. I'm busy right now, I'll try to fix this in a while.


Added Github section in Devops resources

- DevOps-  - GitHub Repository
Fixes #425
Description:

I have added GitHub repository links in the DevOps resources.

Checklist:

[X] I have carefully reviewed and adhered to the contributing guidelines before creating this pull request.
[X] I followed the prescribed PR title template. (Check this if you're adding a resource)

@jfmartinz  i have created new pr , check this time

@jfmartinz  I CANT UNDERSTAND THE CHNAGES YOU WANT AND I HAVE ALREADY DONE IT , SO CAN YOU CHECK IT ONCE

@jfmartinz  please can you reply..

I hope you understand that I can quicly reply to the messages, I am the only one maining the project and also have school.

@jfmartinz please can you reply..

Also the PR is less than a day

@jfmartinz sorry sir... For the disturbance

No worries 👍


Add media-has-played attribute

When working on a custom poster experience I really found myself missing the videojs-has-started class. In the Media Chrome world that felt like it could be a media-has-played attribute that's true forever after the playing event fires for the first time. This is proposing a new attribute, so normally I'd go through a discussion first, but since this was so tiny I figured it was ok to put out there for feedback.
How should I be thinking about testing this?

I think autoplay scenarios, particularly rejected autoplay, are likely the main scenarios where it could trip it up or have unexpected results.

LGTM! I'm curious about this custom poster experience 😃, I've been thinking about this one too.