Implement deferred save/deletion (autosave/mark_for_destruction) functionality

I'm curious if there's reason that deferred save/deletion functionality hasn't been implemented in neo4jrb (or if it has and I just couldn't find it).  As I've been limping around this limitation in one of my projects, I'd be willing to attempt implementing it, I'm just doing some cursory reconnaissance before I dig deeper into the code.

@brianewell, is your goal to mark several things for deletion and then send them all to the database as part of one http request? Because you may be able to accomplish this using neo4j-core's queries method
results = neo4j_session.queries do
  append 'MATCH (n:Foo) RETURN n LIMIT 10'
  append 'MATCH (n:Bar) RETURN n LIMIT 5'
end

results[0] # results of first query
results[1] # results of second query

Good callout @thefliik !  One thing to note is that the queries method will (I think) provide the most speedup via HTTP (because Bolt is a constant back and forth for each query and I don't think they've implemented the ability to send many requests at once asynchronously yet)
But if that's not it, an attempt to add the feature would definitely be welcome!  I would suggest laying out an example(s) in this issue so that we can discuss it.
At some point it would be great to be able to have the ability to batch create / update objects similar to the activerecord-import gem (possibly using the queries object could be used in the background).
Also be aware that there is the neo4apis gem which gives a DSL for importing many object in batches, as well as other options laid out here

@thefliik

@brianewell, is your goal to mark several things for deletion and then send them all to the database as part of one http request?

Ideally, I'd like to create, update or mark for destruction several nodes/relations associated with some primary node and have all of those changes included within the same neo4j transaction block (making them atomic, assuming I understand neo4j transactions).
My specific use case has a single form manipulating multiple nodes and relationships (I'm making heavy use of fields_for, and have been having trouble translating my experience with ActiveRecord to Neo4j.rb.  I'd like to be able to reduce complexity in my model code, which right now is a mess of managing the creation and deletion of other nodes in such a way that the validation code will still work.  I remember this being much easier to do in ActiveRecord (using autosave and accepts_nested_attributes_for in the model)

Because you may be able to accomplish this using neo4j-core's queries method

Thanks for the pointer, I'll definitely check that approach out first.  This post was mainly intended as an inquiry into if the feature actually already existed (and I just couldn't find it) or if it had been attempted before and for some reason didn't persist.
@cheerfulstoic

But if that's not it, an attempt to add the feature would definitely be welcome! I would suggest laying out an example(s) in this issue so that we can discuss it.

Sure thing!
What I envision is something similar to ActiveRecord's autosave association functionality.  Specifically "a module that takes care of automatically saving associated records when their parent is saved.  In addition to saving, it also destroys any associated records that were marked for destruction."
The use case would be pretty much the same as the use case outlined in the ActiveRecord module.  I'll provide an example based on the ActiveRecord version linked above:
One-to-one Example
class Post
    include Neo4j::ActiveNode

    property :title
    has_one :in, :author, type: :AUTHORED, autosave: true
end

Saving changes to the parent and its associated model can now be performed automatically and atomically:
post = Post.first
post.title          # => "The current global position of migrating ducks"
post.author.name    # => "alloy"

post.title = "On the migration of ducks"
post.author.name = "Eloy Duran"

post.save
post.reload
post.title          # => "On the migration of ducks"
post.author.name    # => "Eloy Duran"

Destroying an associated model, as part of the parent's save action, is as simple as marking it for destruction:
post.author.mark_for_destruction
post.author.marked_for_destruction? # => true

Note that the author is not yet removed from the database:
uuid = post.author.uuid
Author.find_by( uuid: uuid ).nil? # => false

Until the post is saved:
post.save
post.reload.author # => nil
Author.find_by( uuid: uuid ) # => nil

One-to-many Example
The default behavior of ActiveRecord when :autosave is not declared is that new objects of a has_many association are saved when their parent object is saved.
class Post < ActiveRecord::Base
    has_many :comments # :autosave option is not declared
end

post = Post.new( title: 'ruby rocks' )
post.comments.build( body: 'hello world' )
post.save # => saves both post and comment

post = Post.create( title: 'ruby rocks' )
post.comments.build( body: 'hello world' )
post.save # => saves both post and comment

post = Post.create( title: 'ruby rocks' )
post.comments.create( body: 'hello world' )
post.save # => saves both post and comment

While this is default behavior for ActiveRecord, it's not default neo4j.rb behavior, and I'm reluctant to change existing behavior.  I also question the consistency of this decision on the part of ActiveRecord (why is the save operation for one object explicitly saving another object without my input?)  Regardless we can certainly have a discussion about it.
What I would like to see here is an autosave option which will automatically create any new nodes and relationships, modify any updated nodes and relationships, and delete any marked nodes and relationships by following any has_many associations that have autosave: true:
class Post
    has_many :in, :comments, type: :ON, autosave: true
end

post = Post.new( title: "Neo4j rocks" )
post.comments = [ Comment.new( body: "Hello World" ) ]
post.save # => saves both post and comment

Additionally, the association proxy could be extended with build or a similar method name which acts much like create but without saving a relationship between two nodes.  I'll use an example from Neo4j.rb screencast #3:
class Asset
    include Neo4j::ActiveNode

    property :title

    has_many :out, :categories, type: :HAS_CATEGORY, autosave: true
end

class Category
    include Neo4j::ActiveNode

    property :name
end

asset = Asset.create( title: 'Talking about Neo4j' ) # => This will create asset in neo4j
category = Category.create( name: 'Graphs' ) # => This will create category in neo4j

asset.categories.create( category, weight: 5 ) # => This will create relationship between asset and category in neo4j
asset.save # => This step is completely unnecessary.

Using build:
asset = Asset.new( title: 'Talking about Neo4j' ) # => This will create asset and not commit it
category = Category.new( name: 'Graphs' ) # => This will create category and not commit it

asset.categories.build( category, weight: 5 ) # => This will create relationship between asset and category in neo4j and not commit it
asset.save # => This will commit the asset, category, and relationship between them to neo4j.

Additionally autosave could be added as an option to Neo4j::ActiveRel under from_class and to_class  This would allow you to issue a save from a relationship out to the source node and the target node:
asset = Asset.new( title: 'Talking about Neo4j' ) # => This will create asset and not commit it
category = Category.new( name: 'Graphs' ) # => This will create category and not commit it

asset.categories.create( category, weight: 5 ) # => This will create relationship between asset and category in neo4j and commit the asset, category, and relationship to neo4j
asset.save # => This step is completely unnecessary.

As of neo4j.rb 8.0.18 this fails to properly commit unless asset and category have been explicitly committed beforehand.
This should be enough to spark conversation.  Please let me know your thoughts.

It's been quite a while but I seem to remember doing a little research and coming away thinking that AutosaveAssociation would depend on some features that we didn't have. I don't remember what all of those features were, but I am think that an association cache was one of them. We're in a much better place now, I'm sure it's much more doable now.

@brianewell

Ideally, I'd like to create, update or mark for destruction several nodes/relations associated with some primary node and have all of those changes included within the same neo4j transaction block (making them atomic, assuming I understand neo4j transactions).

 Of note though, if any transaction fails within a group of nested transactions, all of the transactions in that nesting will fail (basically, the failure bubbles up).
Neo4j supports a lite version of ActiveRecord's build command (though I do miss build). It's explained in the docs here. Basically, you can build an association for a parent that itself has not been persisted yet. When this is done, the association (both relation and node) will automatically be persisted when you callsave on the parent (like with build). However, if the parent has already been persisted, the association itself is immediately persisted. It's probably easier to understand if you just look at the docs. This is definitely a lite version of build though. Very limited.

As @subvertallchris we'd need an association cache, but I'm pretty sure that we have that now in the AssociationProxy class, so that might mean that it wouldn't be too difficult.  Having matching functionality for ActiveRel is a good callout, but that would probably need to be implemented more or less from scratch regardless.
Regarding the default behavior of ActiveRecord vs. ActiveNode, one thing that I would point out is that I believe we have the ability to do object = ModelClass.new(association: unpersisted_association_object) and doing an object.save would save unpersisted_association_object to the database.  So then it would probably be consistent that building via an association and then calling save would save the association as well.
In short, I think it would be wonderful to have build as well as autosaving to be more consistent with ActiveRecord.  People definitely come on occasion with problems with fields_for and it's not something that I use and so I don't have much guidance for them.

@thefliik

You can already / easily wrap multiple queries inside one transaction block using

I'm sorry for not communicating this more clearly earlier.  I would like behavior that automatically saves associated records when a parent record is saved.  I was getting wrapped up in the details of wanting that save to also occur within a single transaction, and while that's still critical and true, it's a much smaller part of the bigger picture.
As of this morning, I was saving associated records using a custom after_save method.  I am now using a custom around_save method that opens a Neo4j::ActiveBase.run_transaction block, yields to perform the save of the parent, and then iterates through the associated records.
class Post
    include Neo4j::ActiveNode

    property :title
    has_one :in, :author, type: :AUTHORED

    around_save :save_author

    private

    save_author
        # Do pre-save stuff
        Neo4j::ActiveBase.run_transaction do
            yield
            # Save other objects
        end
    end
end

While this definitely addresses my concerns about atomic transactions (thank you for that), I'm still finding that management logic for this ('do pre-save stuff' and 'save other objects') is taking up more space in my model than I'd like it to, especially compared to the business logic is.  I'm also recognizing that I've been tending to repeat my object management code in different models, violating DRY.
I will look closer into build lite before I continue with this thread (sorry @cheerfulstoic, but I'll respond to your post soon)


Updating version from 3.1.2 to 3.1.3 : Could not resolve all dependencies for configuration

Hello,
Since I updated the version to 3.1.3 I'm not able anymore to compile, I get this error message

A problem occurred configuring project ':app'.

Could not resolve all dependencies for configuration ':app:_debugApk'.
A problem occurred configuring project ':react-native-onesignal'.
Could not resolve all dependencies for configuration ':react-native-onesignal:_debugPublishCopy'.
Could not find any version that matches com.android.support:support-v4:[26.0.0, 27.2.0).
Versions that do not match:
26.0.0-alpha1
25.3.1
25.3.0
25.2.0
25.1.1
+ 32 more
Searched in the following locations:
file:/Users/vsts/Library/Android/sdk/extras/android/m2repository/com/android/support/support-v4/maven-metadata.xml
file:/Users/vsts/agent/2.131.0/work/1/s/project/android/sdk-manager/com/android/support/support-v4/maven-metadata.xml
file:/Users/vsts/agent/2.131.0/work/1/s/project/android/sdk-manager/com/android/support/support-v4/
Required by:
myBjj:react-native-onesignal:unspecified > com.onesignal:OneSignal:3.8.3
Could not find any version that matches com.android.support:customtabs:[26.0.0, 27.2.0).
Versions that do not match:
26.0.0-alpha1
25.3.1
25.3.0
25.2.0
25.1.1
+ 19 more
Searched in the following locations:
file:/Users/vsts/Library/Android/sdk/extras/android/m2repository/com/android/support/customtabs/maven-metadata.xml
file:/Users/vsts/agent/2.131.0/work/1/s/project/android/sdk-manager/com/android/support/customtabs/maven-metadata.xml
file:/Users/vsts/agent/2.131.0/work/1/s/project/android/sdk-manager/com/android/support/customtabs/
Required by:
myBjj:react-native-onesignal:unspecified > com.onesignal:OneSignal:3.8.3

I'm using :
compileSdkVersion : 23
buildToolsVersion 23.0.1
I tried also to install the sdk tools 26.0.0 & 27.2.0 but it does not work.

I would like to not have to upgrade my compileSdkVersion, Is it possible ?

Same Issue here

i think its because of this commit :
https://github.com/geektimecoil/react-native-onesignal/commit/2d94cfe65913c96ecb0548beb85d6fae6020e3c0
the minimum sdk version has been changed!

@Kisepro Thanks for reporting, we were too aggressive on updating the build.gradle setting in the 3.1.3 SDK update as you noted @HessiPard.
I just created a new react project with react-native init found it to be defaulting to some extremely old build.gradle settings; compileSdkVersion 23, BuildToolsVersion "23.0.1",  and targetSdkVersion 22. Even with the latest react-native-cli: 2.0.1 and react-native: 0.54.3 versions. This is also noted on this open issue react issue https://github.com/facebook/react-native/issues/18095 which is going to be an issue for submitting apps the Google Play Store come August 2018.
Since react is designed for these older Android setting we are going to release another update soon to use these same react native defaults in this plugin. However we are going to do a bit a future proofing to allow overriding like this.
Your projects android/build.gradle
ext {
    compileSdkVersion = 23
    buildToolsVersion = '23.0.1'
}

OneSignal's build.gradle
android {
   // Reads your projects settings
   compileSdkVersion rootProject.ext.compileSdkVersion
   buildToolsVersion rootProject.ext.buildToolsVersion
}

When is fix planned to be merged? Can not open the React Native app on android because of this! Please fix!

@nikasvan you can temporarily restrict the react-native-onesignal version in package.json to 3.1.2.

@Kisepro @HessiPard @nikasvan We have released version 3.1.4 with a fix for this. https://github.com/geektimecoil/react-native-onesignal/releases

@jkasten2  I'm using 3.1.4 and I'm still getting this issue.
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

@ChristianTucker Are you seeing this specific error or a different one?
Could not find any version that matches com.android.support:support-v4:[26.0.0, 27.2.0).

The com.android.support dependency was excluded in 3.1.4 so this should be pulled in from OneSignal.
https://github.com/geektimecoil/react-native-onesignal/blob/3.1.4/android/build.gradle#L31
Are you able to reproduce the issue with a new react project with OneSignal? Or does the problem only occur once you start adding other plugins?


Update README.md

Summary by CodeRabbit

Documentation

Updated the contact email address in the README for user inquiries.

@coderabbitai generate interesting stats about this repository from git and render them as a table.

devape can you review the changes here

devape can you review the changes here

devape can you review the changes here

devape can you review the changes here

devape can you review the changes here?

devape can you review the changes here?

devape can you review this?

devape can you review this?

@devapeai /review


新建一个flutter项目 加入   thrio: '^0.5.0'  导致的问题

新建一个flutter项目 加入   thrio: '^0.5.0'  导致的问题
kotlin版本 1.3.50
gradle   classpath 'com.android.tools.build:gradle:3.5.0'
dart版本 193.7547
flutter版本50.0.1
distributionUrl=https://services.gradle.org/distributions/gradle-5.6.2-all.zip
为什么我的运行回报错
e: C:\flutter.pub-cache\hosted\pub.flutter-io.cn\thrio-0.5.1\android\src\main\kotlin\io\flutter\embedding\android\ThrioFlutterView.kt: (601, 17): Type mismatch: inferred type is TextInputChannel but DartExecutor was expected
e: C:\flutter.pub-cache\hosted\pub.flutter-io.cn\thrio-0.5.1\android\src\main\kotlin\io\flutter\embedding\android\ThrioFlutterView.kt: (604, 89): Too many arguments for public constructor AndroidTouchProcessor(@NonNull p0: FlutterRenderer) defined in io.flutter.embedding.android.AndroidTouchProcessor
e: C:\flutter.pub-cache\hosted\pub.flutter-io.cn\thrio-0.5.1\android\src\main\kotlin\io\flutter\embedding\android\ThrioFlutterView.kt: (666, 53): Type mismatch: inferred type is TextInputChannel but DartExecutor was expected
e: C:\flutter.pub-cache\hosted\pub.flutter-io.cn\thrio-0.5.1\android\src\main\kotlin\io\flutter\embedding\android\ThrioFlutterView.kt: (668, 76): Too many arguments for public constructor AndroidTouchProcessor(@NonNull p0: FlutterRenderer) defined in io.flutter.embedding.android.AndroidTouchProcessor

e: C:\flutter.pub-cache\hosted\pub.flutter-io.cn\thrio-0.5.1\android\src\main\kotlin\io\flutter\embedding\android\ThrioFlutterView.kt: (601, 17): Type mismatch: inferred type is TextInputChannel but DartExecutor was expected
e: C:\flutter.pub-cache\hosted\pub.flutter-io.cn\thrio-0.5.1\android\src\main\kotlin\io\flutter\embedding\android\ThrioFlutterView.kt: (604, 89): Too many arguments for public constructor AndroidTouchProcessor(@NonNull p0: FlutterRenderer) defined in io.flutter.embedding.android.AndroidTouchProcessor
e: C:\flutter.pub-cache\hosted\pub.flutter-io.cn\thrio-0.5.1\android\src\main\kotlin\io\flutter\embedding\android\ThrioFlutterView.kt: (666, 53): Type mismatch: inferred type is TextInputChannel but DartExecutor was expected
e: C:\flutter.pub-cache\hosted\pub.flutter-io.cn\thrio-0.5.1\android\src\main\kotlin\io\flutter\embedding\android\ThrioFlutterView.kt: (668, 76): Too many arguments for public constructor AndroidTouchProcessor(@NonNull p0: FlutterRenderer) defined in io.flutter.embedding.android.AndroidTouchProcessor
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':thrio:compileDebugKotlin'.

Compilation error. See log for more details

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 30s
Exception: Gradle task assembleDebug failed with exit code 1
沒打全，以这个问准

Flutter SDK 1.22.x版本才能用现在的main分支，pub支持之前的版本

群号多少 我现在去加 我还有好几个问题

1014085473

版本不匹配的问题，关掉了


how about ignore case the key?

how about ignore case the key?

Json fields are case sensitive...


keyframes in scoped style was compiled wrong

Version
5.0.0-alpha.7
Environment info
@vue/cli 4.5.11
vue 3.0.7

Steps to reproduce
init a new project following the intro:
yarn global add @vue/cli @vue/cli-service-global
vue create hello-world
cd hello-world
yarn build
then add "scoped"  and css in App.vue:

What is expected?
css should be compiled like :

What is actually happening?
css was compiled to :

the frame in keyframes should not have label like "[data-v-7ba5bd90] ", or the animation won't work.

Duplicate of #6328


Various fixes/improvements

Changes

New version of JQuery + non slim version
Fixes #41
Fixes #43
Fixes #44
Fixes #45
Fixes #46
Fixes #47
Fixes #51
Fixes #53
Fixes #54
Fixes #55

This change is

Hello @Yu-jinKim! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file trendyqc/trend_monitoring/tables.py:

Line 14:23: E225 missing whitespace around operator
Line 38:39: W291 trailing whitespace
Line 57:1: W293 blank line contains whitespace
Line 71:80: E501 line too long (132 > 79 characters)
Line 80:80: E501 line too long (140 > 79 characters)


Failed to integrate SonarQube

What happened?
I'm trying to integrate SonarQube on KubeSphere 3.2.0 following official document, but something goes wrong. I always got the log below even if I restarted Deployment devops-apiserver:
devops-apiserver-7f7f74bb56-6pn7q W1128 16:32:33.685090       1 client_config.go:552] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
devops-apiserver-7f7f74bb56-6pn7q W1128 16:32:33.687178       1 options.go:140] ks-apiserver starts without redis provided, it will use in memory cache. This may cause inconsistencies when running ks-apiserver with multiple replicas.
devops-apiserver-7f7f74bb56-6pn7q I1128 16:32:33.732722       1 sonarqube.go:39] Sonarqube integration is disabled
devops-apiserver-7f7f74bb56-6pn7q I1128 16:32:33.769645       1 sonarqube.go:39] Sonarqube integration is disabled
devops-apiserver-7f7f74bb56-6pn7q I1128 16:32:33.772139       1 apiserver.go:207] Start cache objects
devops-apiserver-7f7f74bb56-6pn7q I1128 16:32:33.901689       1 apiserver.go:262] Finished caching objects
devops-apiserver-7f7f74bb56-6pn7q I1128 16:32:33.902592       1 apiserver.go:171] Start listening on :9090
devops-apiserver-7f7f74bb56-6pn7q I1128 16:33:07.649188       1 apiserver.go:298] <IP_ADDRESS> - "GET /v1alpha2/devops/demolq7ng/pipelines/devops-maven-sample/branches/sonarqube/sonarstatus HTTP/1.1" 404 19 0ms

Possible cause
At last, I figured out the reason why that didn't work.
After we edit cc ks-installer as below, ks-installer Pod will change kubesphere-config ConfigMap but devops-config won't be changed automatically.
devops:
  enabled: true
  jenkinsJavaOpts_MaxRAM: 2g
  jenkinsJavaOpts_Xms: 512m
  jenkinsJavaOpts_Xmx: 512m
  jenkinsMemoryLim: 2Gi
  jenkinsMemoryReq: 1500Mi
  jenkinsVolumeSize: 8Gi
  sonarqube: # Add this field manually.
    externalSonarUrl: http://<IP_ADDRESS>:31377 # The SonarQube IP address.
    externalSonarToken: 00ee4c512fc987d3ec3251fdd7493193cdd3b91d # The SonarQube admin token created above.

/kind bug

How about just letting users change the ConfigMap devops-config instead of ks-installer? Of course, we need to update the document if you think it's ok.

For upgrading:
We need to synchronize sonarqube part in kubesphere-config ConfigMap into devops-config.
For fresh installation:
We should rectify official documentation about how to integrate SonarQube into KubeSphere: Add sonarqube configuration part into devops-config ConfigMap instead of ks-installer ClusterConfiguration.

Agree with your idea. @JohnNiang

/assign @JohnNiang


Secrets Manager should default to run as Non-Root

I believe that the Dockerfile should be adjusted slightly so that secrets-manager does not run as root by default.
I have created and image myself like this and it seems to work fine.
Merge request incoming.

This makes total sense to me :). Good catch!

I think this issue can safely be closed 🙌


How are virtual parts assigned to sales orders?

Discussed in https://github.com/inventree/InvenTree/discussions/3262

Originally posted by miggland June 28, 2022
Hi,
I have added a virtual part to a sales order. It's the only part in the sales order. So far so good.
Before I can complete the order, I need to assign stock - I have no stock yet, so I go the part page ( ... /part/107/), Stock page and click "New Stock item":

However, when I try to submit I get the following:

So I'm stuck - I have no stock to assign in the sales order, and I can't assign any because of that error message.
Is this a bug, or is this not the intended procedure?

@miggland the way that virtual parts are currently implemented, they cannot have stock items created against them, and thus should not be able to be assigned to sales orders. That's the first element of the bug here - you should not be able to assign a virtual part to a sales order.
The second part is the Invalid pk "107" - object does not exist
The object does exist, but it is not a valid choice for creating a StockItem:
https://github.com/inventree/InvenTree/blob/ad57ca5ddfff2a4e4da17dbde4dcf97b644e85e7/InvenTree/stock/models.py#L587
However the error message shown in the form does not correctly reflect this..
The second part of the bug is that the error message should be displaying something sensible!

Thanks for the quick reply - and fix.
However, I'm wondering about this:

That's the first element of the bug here - you should not be able to assign a virtual part to a sales order.

Why not? What's the purpose of virtual parts if I can't sell them? Can I buy them via Purchase Orders?

You can mark a part as virtual to signal that it is not a "real" physical part which can have stock items. If you need that functionality don't mark the part as virtual.

How do I record e.g. software licenses or working hours which I want to charge per sales order? Isn't that the intention of a virtual part?


Don't add channel "software-update" as default for all reports

If checkForUpdatesAtBoot is set to true, notifications about new versions will be sent to all configured "reports", regardless of the channels configured.
The channel software-update is added to all reports here: https://github.com/nttgin/BGPalerter/blob/b33e47a055f1ff59491ac09b76b05c67cabf784c/src/env.js#L247
My suggestion is to either make software-update a non-default channel (and add it to default-config/examples/release notes) or to add a new config switch addUpdatesChannelToAllReports which defaults to true to keep the current behaviour.
We have 2 reports defined of which one triggers alerts for the person on-call. It wouldn't be nice to wake them up in the middle of the night just because a new version of BGPalerter was released...
I can submit a PR if you decide for one of the options mentioned above.

Hi @rybnico,
Software updates notification are only sent to the default user group (documented here).
The default user group is more an "admin" group. I think the noc and 24/7 should have a dedicated group.
Let me know if this solution is good for you.

Hi @massimocandela,
thanks for your super fast response!
I didn't saw this:

Note that the default group is used also for administrative and error communications.

Yes, using groups works for us! I close the issue then.

I think indeed it was not clear. I added a few lines explaining this directly in the section talking about reports.
I'll think a way to add the possibility to create a group in the auto-configuration step. Maybe I can ask in that phase if the user wants to create another user group.
Thanks for the feedback.


ES6 template string

Vue.js don't support es6 template string
<div :style="{transform:`rotate(${angle}deg)`}">

example:
http://codepen.io/yukulele/pen/KVLKoO

I don't know if this can be easily implemented but, why should vue support an es6 feature, knowing that it isn't yet supported on most mobile devices (http://kangax.github.io/compat-table/es6/#test-template_strings)?

Note the fix only handles expression getter generation - it would still only work in Browsers that support template strings natively.

thank you!
It works but only support one placeholder
it works for my first exemple,
<div :style="{transform:`rotate(${angle}deg)`}">

but not this one
<div :style="{transform:`translate(${x}px, ${y}px)`}">

@yukulele looks 2.0 fix this, 1.0 still not

It works !
http://codepen.io/yukulele/pen/KVLKoO
thank you !

Mark...

We can not use expressions with ES6 syntax in templates unless browsers support it, for the reason that babel can not extract out these expressions and transform them into ES5.
As I know, in vue 2.0, we can precompile templates into rendering functions in the backend. So, I want to know if it is possible to use babel to transform ES6 expressions into ES5? How do you think about it? @yyx990803 @posva

I made a simple test with Vue 2.0. I noticed that babel can properly transform ES6 expressions into ES5. It's great and one more benefits to use Vue 2.0 instead of Vue 1.0. Sorry to disturb.

filters dont work inside an es6 template

@gaby64 filters can only be used at the end of the expression: https://vuejs.org/v2/guide/filters.html
Locking this very old thread


add go modules

also fix the tests (the new version of uuid package has different api)

Superseded by https://github.com/segmentio/go-athena/pull/35 . Thank you for the contribution!


Update closure-compiler dependency

Update closure-compiler dependency to latest 20170124.0.0

@dikmax a PR would be great 🙂

fixed in #26


Remove operation of an object that is no access granted results in no errors irods log for some languages

Bug Report
iRODS Version, OS and Version
4.3.1, almalinux8
What did you try to do?
Tried to remove an object that the user doesn't have any permission.
Expected behavior
Some errors in irods log as well as http-client server. Expected to see similar errors that are seen in the irods log with the "irm" command.
Observed behavior (including steps to reproduce, if applicable)
I didn't see any error in http-client server. I didn't see any error in irods log with "curl/7.61.1" and "python-requests/2.20.0". I did see the similar errors of the irm command only with the Go-http-client/1.1. Is this normal?
no errors in irods and http-client logs (same for the python request):
[irods@dev-u0137480 go-http-client]$ curl -H "Authorization: Bearer $token" 'http://localhost:9000/irods-http-api/0.1.0/data-objects' --data-urlencode 'op=remove' --data-urlencode 'lpath=/u0137480/home/test-group/myfile.txt'
{"irods_response":{"status_code":-171000}}

go client:
[irods@dev-u0137480 go-http-client]$ go run client.go
{
  "irods_response": {
    "status_code": 0
  }
}

http-api stdout | [2023-12-19 18:38:36.822] [P:450] [info] [T:505] op_remove: client_info.username = [rods]
irods stdout | {"log_category":"legacy","log_level":"info","log_message":"_rsGenQuery: genQuery status = -818000","request_api_name":"DATA_OBJ_UNLINK_AN","request_api_number":615,"request_api_version":"d","request_client_user":"rods","request_host":"<IP_ADDRESS>","request_proxy_user":"rods","request_release_version":"rods4.3.1","server_host":"dev-u0137480.irods.t.icts.kuleuven.be","server_pid":182790,"server_timestamp":"2023-12-19T17:38:36.830Z","server_type":"agent","server_zone":"u0137480"}
irods stdout | {"log_category":"legacy","log_level":"info","log_message":"rsGenQuery: _rsGenQuery failed, status = -818000","request_api_name":"DATA_OBJ_UNLINK_AN","request_api_number":615,"request_api_version":"d","request_client_user":"rods","request_host":"<IP_ADDRESS>","request_proxy_user":"rods","request_release_version":"rods4.3.1","server_host":"dev-u0137480.irods.t.icts.kuleuven.be","server_pid":182790,"server_timestamp":"2023-12-19T17:38:36.830Z","server_type":"agent","server_zone":"u0137480"}
irods stdout | {"log_category":"legacy","log_level":"info","log_message":"getDataObjInfo: rsGenQuery error, status = -818000","request_api_name":"DATA_OBJ_UNLINK_AN","request_api_number":615,"request_api_version":"d","request_client_user":"rods","request_host":"<IP_ADDRESS>","request_proxy_user":"rods","request_release_version":"rods4.3.1","server_host":"dev-u0137480.irods.t.icts.kuleuven.be","server_pid":182790,"server_timestamp":"2023-12-19T17:38:36.830Z","server_type":"agent","server_zone":"u0137480"}
irods stdout | {"log_category":"legacy","log_level":"info","log_message":"[rsDataObjUnlink_impl:336] - [CAT_NO_ACCESS_PERMISSION: [resolve_resource_hierarchy:413] - failed in file_object_factory:[[-]\t/irods_source/server/core/src/irods_file_object.cpp:358:irods::error irods::file_object_factory(rsComm_t *, dataObjInp_t *, irods::file_object_ptr, dataObjInfo_t **) :  status [CAT_NO_ACCESS_PERMISSION]  errno [] -- message [failed in call to getDataObjInfoIncSpecColl for [/u0137480/home/test_group/myfile.txt] CAT_NO_ACCESS_PERMISSION ]\n\n]\n\n]","request_api_name":"DATA_OBJ_UNLINK_AN","request_api_number":615,"request_api_version":"d","request_client_user":"rods","request_host":"<IP_ADDRESS>","request_proxy_user":"rods","request_release_version":"rods4.3.1","server_host":"dev-u0137480.irods.t.icts.kuleuven.be","server_pid":182790,"server_timestamp":"2023-12-19T17:38:36.831Z","server_type":"agent","server_zone":"u0137480"}

iCommand:
[irods@dev-u0137480 go-http-client]$ irm /u0137480/home/test_group/myfile.txt
remote addresses: <IP_ADDRESS> ERROR: rmUtil: rm error for /u0137480/home/test_group/myfile.txt, status = -818000 status = -818000 CAT_NO_ACCESS_PERMISSION

irods stdout | {"log_category":"legacy","log_level":"info","log_message":"_rsGenQuery: genQuery status = -818000","request_api_name":"DATA_OBJ_UNLINK_AN","request_api_number":615,"request_api_version":"d","request_client_user":"rods","request_host":"<IP_ADDRESS>","request_proxy_user":"rods","request_release_version":"rods4.3.1","server_host":"dev-u0137480.irods.t.icts.kuleuven.be","server_pid":186132,"server_timestamp":"2023-12-19T17:40:38.842Z","server_type":"agent","server_zone":"u0137480"}
irods stdout | {"log_category":"legacy","log_level":"info","log_message":"rsGenQuery: _rsGenQuery failed, status = -818000","request_api_name":"DATA_OBJ_UNLINK_AN","request_api_number":615,"request_api_version":"d","request_client_user":"rods","request_host":"<IP_ADDRESS>","request_proxy_user":"rods","request_release_version":"rods4.3.1","server_host":"dev-u0137480.irods.t.icts.kuleuven.be","server_pid":186132,"server_timestamp":"2023-12-19T17:40:38.842Z","server_type":"agent","server_zone":"u0137480"}
irods stdout | {"log_category":"legacy","log_level":"info","log_message":"getDataObjInfo: rsGenQuery error, status = -818000","request_api_name":"DATA_OBJ_UNLINK_AN","request_api_number":615,"request_api_version":"d","request_client_user":"rods","request_host":"<IP_ADDRESS>","request_proxy_user":"rods","request_release_version":"rods4.3.1","server_host":"dev-u0137480.irods.t.icts.kuleuven.be","server_pid":186132,"server_timestamp":"2023-12-19T17:40:38.842Z","server_type":"agent","server_zone":"u0137480"}
irods stdout | {"log_category":"legacy","log_level":"info","log_message":"[rsDataObjUnlink_impl:336] - [CAT_NO_ACCESS_PERMISSION: [resolve_resource_hierarchy:413] - failed in file_object_factory:[[-]\t/irods_source/server/core/src/irods_file_object.cpp:358:irods::error irods::file_object_factory(rsComm_t *, dataObjInp_t *, irods::file_object_ptr, dataObjInfo_t **) :  status [CAT_NO_ACCESS_PERMISSION]  errno [] -- message [failed in call to getDataObjInfoIncSpecColl for [/u0137480/home/test_group/myfile.txt] CAT_NO_ACCESS_PERMISSION ]\n\n]\n\n]","request_api_name":"DATA_OBJ_UNLINK_AN","request_api_number":615,"request_api_version":"d","request_client_user":"rods","request_host":"<IP_ADDRESS>","request_proxy_user":"rods","request_release_version":"rods4.3.1","server_host":"dev-u0137480.irods.t.icts.kuleuven.be","server_pid":186132,"server_timestamp":"2023-12-19T17:40:38.843Z","server_type":"agent","server_zone":"u0137480"}

It seems that the HTTP API is failing on some pre-flight check in the curl call. Notice the return code - "status_code":-171000, which is NOT_A_DATA_OBJECT. The reason the server doesn't emit any errors is because the request is never being sent across from the client to the server.
I'll leave off the label on this for now but agree that the inconsistency feels strange.

There are two point:

Inconsistency for different clients,
Never appears any error in http-client server.

The remove op needs to return a boolean indicating whether removal was successful. As of right now, the HTTP API just calls filesystem::remove and never checks the return value for whether it did anything.
We'll get that fixed right up.

Resolved by https://github.com/irods/irods_client_http_api/commit/9a5898fb96d93c77f4b3c368d3f24204450058b8.
Below is an example showing me attempting to remove another user's data object without having the permission to do so. The bearer token represents a user other than rods.
$ curl 'http://localhost:9000/irods-http-api/0.1.0/data-objects' \
     -H "Authorization: Bearer $token" \
    --data-urlencode 'op=remove' \
    --data-urlencode 'lpath=/tempZone/home/rods/httpfile' \
    --data-urlencode 'catalog-only=0' -sv | jq

*   Trying <IP_ADDRESS>:9000...
* TCP_NODELAY set
* Connected to localhost (<IP_ADDRESS>) port 9000 (#0)
> POST /irods-http-api/0.1.0/data-objects HTTP/1.1
> Host: localhost:9000
> User-Agent: curl/7.68.0
> Accept: */*
> Authorization: Bearer 8b2319b7-4f7f-416f-b17e-09cd169328a5
> Content-Length: 67
> Content-Type: application/x-www-form-urlencoded
>
} [67 bytes data]
* upload completely sent off: 67 out of 67 bytes
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: irods_http_api/0.1.0 (c93ed1e317a473db6c8771a730837457c7856d31)
< Content-Type: application/json
< Content-Length: 42
<
{ [42 bytes data]
* Connection #0 to host localhost left intact
{
  "irods_response": {
    "status_code": -818000
  }
}
$ ierror 818000
irods error: -818000 CAT_NO_ACCESS_PERMISSION


no valid transaction

What version of Go are you using (go version)?
go version go1.10.3 darwin/amd64
Which database and its version are you using?
mysql
var db *gorm.DB

db.DB().SetConnMaxLifetime(time.Duration(120) * time.Second)
db.DB().SetMaxIdleConns(1)
db.DB().SetMaxOpenConns(1)

First http request:
//without db.Begin() or uncommitted transaction
db.Commit()

then other http request use db.Create always : no valid transaction.

Please provide more detail and re-open issue


How do I find files that didn't rename?

First of all thanks for your script. I renamed several files using this. but some hasn't been changed. How do I know that files? You can return the current filename of the files that haven't been renamed. Thanks.

Have you installed Calibre?
Can you provide related e-book files?


Remove lodash entirely (it was only used for two functions). Related to gh-490

The travis failure is completely bogus. This was the same issue that @Frijol @LinusU's patches were hitting.

I reran the tests, all are passing.

Rad! :+1:

LGMT :raised_hands:


Apply Min/Max Constraints

Addresses Request for applying Min/Max constraints to each Widget (https://github.com/ibako/resizable_widget/issues/11)
Implementation requires providing a separate List<double?> array for the respective Min / Max behavior. These lists requires at least 1 element to be 0.0 / double.infinity (declaring a min / max value for each element would defeat the purpose of this package)
Sample Declaration:
return Scaffold(
      body: ResizableWidget(
        children: [
          itemA(context), itemB(context), itemC(context)
        ],
        isHorizontalSeparator: true,
        minPercentages: const [
          0.25, 0.0, 0.1
        ],
        maxPercentages: const [
          0.5, double.infinity, double.infinity
        ],
      ),
    );
  }

any word on this?  This would be great to have!

MERGE!!!!

There are some bugs, some times I manage to decrease beyond the minimum.
But in the meantime there are the min and max


Add multi-architecture Docker images with manifest

It's not the best way yet, as I'd like to tackle #19 later, but it's better than the current situation.

Removed from main: not working as expected.


FinOps: Automated BigQuery billing export example

See: https://github.com/GoogleCloudPlatform/pbmm-on-gcp-onboarding/blob/main/docs/google-cloud-onboarding.md#billing
Document and code a canary for billing export
Billing | Billing export | BigQuery Export
https://cloud.google.com/billing/docs/how-to/export-data-bigquery

steps
michael@cloudshell:~/docproc-hc-old/dev-csr (docproc-hc-old)$ export PROJECT_ID=billing-export-old
michael@cloudshell:~/docproc-hc-old/dev-csr (docproc-hc-old)$ export BOOT_PROJECT_ID=docproc-hc-old
michael@cloudshell:~/docproc-hc-old/dev-csr (docproc-hc-old)$ export BILLING_ID=$(gcloud alpha billing projects describe $BOOT_PROJECT_ID '--format=value(billingAccountName)' | sed 's/.*\///')
michael@cloudshell:~/docproc-hc-old/dev-csr (docproc-hc-old)$ echo $BILLING_ID
01E6E8-A....9-D21FF3
michael@cloudshell:~/docproc-hc-old/dev-csr (docproc-hc-old)$ export ORG_ID=$(gcloud projects get-ancestors $BOOT_PROJECT_ID --format='get(id)' | tail -1)
michael@cloudshell:~/docproc-hc-old/dev-csr (docproc-hc-old)$ echo $ORG_ID
583...7868

michael@cloudshell:~/docproc-hc-old/dev-csr (docproc-hc-old)$ gcloud projects create $PROJECT_ID --name="${PROJECT_ID}" --set-as-default
Create in progress for [https://cloudresourcemanager.googleapis.com/v1/projects/billing-export-old].
Waiting for [operations/cp.5073782008204155902] to finish...done.
Enabling service [cloudapis.googleapis.com] on project [billing-export-old]...
Operation "operations/acat.p2-656637240499-5a4f32fd-385b-474c-8965-55978a8716e0" finished successfully.
Updated property [core/project] to [billing-export-old].
michael@cloudshell:~/docproc-hc-old/dev-csr (billing-export-old)$

michael@cloudshell:~/docproc-hc-old/dev-csr (billing-export-old)$ gcloud services list --enabled --project $PROJECT_ID | grep NAME
NAME: bigquery.googleapis.com
NAME: bigquerymigration.googleapis.com
NAME: bigquerystorage.googleapis.com
NAME: cloudapis.googleapis.com
NAME: clouddebugger.googleapis.com
NAME: cloudtrace.googleapis.com
NAME: datastore.googleapis.com
NAME: logging.googleapis.com
NAME: monitoring.googleapis.com
NAME: servicemanagement.googleapis.com
NAME: serviceusage.googleapis.com
NAME: sql-component.googleapis.com
NAME: storage-api.googleapis.com
NAME: storage-component.googleapis.com
NAME: storage.googleapis.com

Enable pricing data

all 3

we need to wait up to 24 hours for tables to appear under the dataset - looking for on demand....

https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#standard-usage-cost-data-schema
"Shortly after enabling Cloud Billing export to BigQuery, billing data tables are automatically created in the BigQuery dataset."

alternative:
Cost Table
https://console.cloud.google.com/billing/019283-6F1AB5-7AD576/reports/tabular;credits=NONE;invoiceCorrections=TAX,BILLING_MODIFICATION?organizationId=583675367868

Tables generated overnight - exporting to json
https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables/standard-usage

Now that we have a JSON exportable output in GCS that we can pipeline - we will examine the export schema for various reporting packages

bq connector to power bi/looker
Issue with nested fields (service, project) - only for CSV export - not for JSON (Working fine)

Most of this I think can be automated via IaC, pre-creating the tables and enabling the required APIs, but the only missing piece is enabling the actual billing export which will need to be done manually. See this issue from the TF provider https://github.com/hashicorp/terraform-provider-google/issues/4848 .

Good plan and issue ref - I am planning on KRMing everything - so far prototyping automation via gcloud script
The 3 standard/default/pricing export initializations were manual so far - checking the rest calls
Compliance issue would also be around the timing for the tables to be auto-created/populated on the big query dataset
3+, ~24, ~48 for standard/detailed/pricing
Verification would need to be async

Workaround for ORM eager (non-lazy) loaded query results that include FK table populations in CSV must be partial or full JSON  -this is done via query not export
Example
record
  +-- id
  +-- system
  +-- project
      +-- id
      +-- name

The following is a workaround for nested fields like service or project.
Run a standard query against the table and export the results as CSV.  JSON will be exported for nested fields containing FK normalized data
Ref:272009024


add credentials support on ReactiveBase

Hello? 😇

Hey @kud
Thanks for the PR but this would go into a different repo as we have migrated to new docs. You may need to update this overe here

Alright cheers!

Done! https://github.com/appbaseio/Docs/pull/43


added custom provisioning script for DCOS

scripts mounts disks as volumes and adds UD/FD information as node attributes

Please remove those few items.  Once your complete, I believe this is ready to merge

add support for 1.8.7 since 1.8.4 has bugs

Can one of the admins verify this patch?

What is that status of this PR? Are we going to merge this or wait for Rob's more complete solution?

It is so far behind Christoph told me he was going to start a new PR and just redo the changes as it would be easier then doing all the rebasing/merging. But when he tried to test, it was being flaky on 1.8.8 clusters.  I was added to an email where he was debugging with Mesos and I haven't seen resolution on that yet.


Is it possible to allow user to change Theme style (saved through Theme Roller) ? using APEX 5.1

using Material theme with APEX 5.1
Is it possible to allow users to change Theme style (saved through Theme Roller) ?

Yes, please read the API: https://docs.oracle.com/database/apex-5.1/AEAPI/SET_CURRENT_STYLE-Procedure.htm#AEAPI-GUID-1E8901B5-A0A1-40A0-9606-4AF738B68BA4
You can find examples in the packaged applications provided by Oracle.


add log redirect for all ansible calls

This patch redirects that STDOUT and STDERR for all ansible invocations in fragments/master-ansible.sh to files in /var/log.
This allows the operator/admin to check the status of each ansible deployment operation and to find the  output in a single consistent location on the infrastructure host.

Reversed the order of stdout/stderr redirects to capture both in the file.


UAT Bug | Issue on Login

Issue description:
Registered user is shown mobile number is not registered.
On refresh, the mobile number is then accepted.

I am not able to reproduce this issue. @Beehyv-Vinod  can you please try to reproduce it and make a video recording of the steps to reproduce and also the network call details and console errors if any.


Make InventoryProvider#update(Player, InventoryContents) a default method

Just a pull request for issue #84

Thanks :)


Build documentation automatically

Right now (since the retirement of doozy.inf), docs are built manually and pushed to ioam.github.io/param. We could use readthedocs, which would build the docs for us automatically.

I don't think we have any particular documentation-building requirements for param, so I'm happy for docs to be built using readthedocs.

Closed by #247


I tried it on a sample main.rs program

The output is always, even when i change some stuff in the rust file:
[pc@localhost mrustc]$ ./bin/mrustc main.rs
Parse: V V V
(0.00 s) Parse: DONE
LoadCrates: V V V
(0.00 s) LoadCrates: DONE
Expand: V V V
:0: BUG:src/expand/mod.cpp:849: TODO: Expand - Load libstd
Aborted (core dumped)
[pc@localhost mrustc]$

This project is nowhere near the stage of being able to compile a program - Currently it cannot load libstd or libcore (so only works for #![no_core] crates). I hope to reach that stage sometime this year, but that depends on free time.

Closing for now as invalid.

well can you add a little explanation of next steps, where the project has to go etc? basically what u just said only a little more.  I want to know the workflow, how do you know what to do next? how do you track features if at all? what's your first workable goal, like in 2 months to be able to compile a println!("hello world!");

See the list of features and rough plans in the README, there's also a todo file in Notes/


Insufficient arguments for HttpGet in Service Endpoint validation in Cosmosdb

Description
As a user, I'd like to be able to test the service endpoint so that I can validate the service response.
Acceptance Criteria

This line needs to have the proper number of arguments for HttpGet method.

Resources
Here is the current error on the mentioned line:
too few arguments in call to httpClient.HttpGet

This has been resolved


add fix for how amp sync treats error callbacks

this pull request addresses #38

Any ETA on merging this? Causing a ton of issues with some apps we have

+1, fix looks good to me. I'll find another @AmpersandJS/core-team person to second this and we'll get it merged/published.

+1 do it @lukekarrys

+1 @lukekarrys @wraithgar. :shipit:

What's the process for merging PRs? Documented anywhere? Seems a tad slow to wait for the whole team to chime in on a simple bug fix that includes tests

published as 4.1.0 silly me fatfingered it as a minor instead of patch release. But anyway, there it is.
Thanks @engenb!
@contra the typical process we have is 2 plus ones: http://ampersandjs.com/learn/bug-triage-process#pull-requests

We're also in the process of assigning lead maintainers for each repo so it's clearer who's the primary on each one.


improvements to glyph validation groups

this is about the color-coded glyph validation groups used by GlyphValidator and GlyphSetProofer

glyphs with same contours and different width appear as equal (blue) – should be white (contours only, different)
empty glyphs currently appear together with contours only – should they be in their own groups? (empty equal / empty different)

done in 24330215f8e583bce1258bead163f5ba06a490b9 and 9dd135ec8b5711b1592eb0ff26fbe28dc6dc1af1


Add 'Crispy Forms'

Investigate the use of 'Crispy' forms to make the default forms look better

Won't fix


Hubot keeps going into loops

Our hubot keeps going into infinite loops (this is with the Flowdock adapter and Hubot v1.1.10).
This only happens intermittently and with multiple hubot scripts, so we're not sure what's causing the issue.
Example chat log (just after I'd updated hubot to v1.1.10):

Matias: hubot time
Hubot: Server time is: Mon Nov 07 2011 16:32:59 GMT+0200 (EET)
Matias: I updated hubot, maybe that will fix the loopy loops.
Hubot: Server time is: Mon Nov 07 2011 16:33:47 GMT+0200 (EET)
Matias: Or not.
Hubot: Server time is: Mon Nov 07 2011 16:34:47 GMT+0200 (EET)

We're running hubot with one app process on Heroku.
Log output from Heroku: https://gist.github.com/ba01952ecf76de8103bc
If you need more details, I'll be happy to oblige.

The flowdock adapter should probably have hubot not listen to himself.  We ran into that in campfire too.
https://github.com/github/hubot/blob/master/src/hubot/campfire.coffee#L34

@arttu, would you like to take a look at this?

@k33l0r, what script(s) have you included to your bot?
If that "time" command is in your own developed script, please use robot.respond instead of robot.hear.
Respond will catch messages starting with "Hubot, " only (or whatever your robot's name is),
hear will match any message anywhere in the message text. Eg. in your case the bot will match "time" in it's own message.
Anyway, I'll change the Flowdock adapter not to respond bot's own messages.

Flowdock adapter fix'd: https://github.com/github/hubot/pull/165


[FEATURE] Save computed retardance and orientation images alongside backgrounds

recOrder shows the computed retardance and orientation images alongside the raw background images. @ieivanov suggested saving these computed images in the BG folder as well, and I agree that this would be nice.
We'll need to check that this change doesn't accidentally break the load_bg functions.
@ziw-liu if you have time and capacity this would be great.

This is a nice convenience feature, but I'm not sure about its backwards compatibility. The load_bg function can be easily modified for this but earlier versions will not be able to read data generated by the later versions. Also, is it possible that some user has a custom script that assumes a certain structure of the background directory as we do with load_bg?

Very true, good point. Maybe these get saved to a different folder than the BG folder?

Maybe these get saved to a different folder than the BG folder?

Do you mean this?
data/
--------
   | BG/
   | BG_visual/

How about if you make a subfolder BG/visuals which would include the computed images

That might just work. I'll try it out.

@talonchandler By 'state plots' do you mean the plots in #199? If so are how do they relate to background correction?


about the Distractor-aware Incremental Learning

your paper says you introduce a novel distractor-aware objective function to rerank the proposals P which have top-k similarities with the exemplar. but I just can not find it in this code. it seems that this code use the same Proposal selection as the SiameseRPN.

yes, I also can not find someting about Da-SiamRPN parts.


thinking forest biome has a jungle tag, causes cross-mod issues with mods that add structures to jungles

this image speaks for itself. Because the forest has the jungle tag, mods like repurposed structures that don't care about the dimension, only the biome type, can put structures that are meant to only be in overworld jungles, into thinking forests. Maybe... don't use the jungle tag?

Yeah. This is going to be fixed when i get to it. The Thinking Forest was originally intended to resemble a jungle, but that has changed.

Turns out this was also causing a really nasty crash with AE2. This should be fixed by 617c8e1b887551a032aa84bd36ec7bfa0a9ced63.


getPlayerArray() format

What exactly is the format of the array that is given when getPlayerArray() is called? I am trying to display the player list as a table on a control panel but for me to display them I need to know what the indexes are for the array. If you could please help it would be greatly appreciated.

TBH I don't exactly know, but just use 'print_r' to see the array and you'll know ;)

How would I get it to show a full player list because at the moment it only shows the last person connected and not a list of all players. It seems as though the getPlayersArray() function prints to only one array

Sounds like and php problem and NOT an arc problem.
Show us your code ?

`<?php
try{
$rcon = new ARC($ip, $pass, $port);
					$array = $rcon->getPlayersArray();
					$array = $array["0"];
					//print_r($array);
					$id = $array['0'];
					$ip = $array['1'];
					$ping = $array['2'];
					$guid = $array['3'];
					$name = $array['4'];
						//echo $id;
					echo '

									ID
									IP
									Ping
									GUID
									Name

									' . $id . '
									' . $ip . '
									' . $ping . '
									' . $guid . '
									' . $name . '

';

					$rcon->disconnect();
				} catch (Exception $e){
					echo "Ups! Something went wrong: {$e->getMessage()}";
				}
			?>`

That is the code I have for it to show the player table on the page. As of right now it only shows the last person to have connected to the server.

You do realize, that by saying $array = $array["0"];, you just select the first element in the array, which is the reason why it shows only the last person to have connected. In order to show all players, you have to iterate over the array with an foreach loop.

Foreach($array AS $player)
{
var_dump($player);
}

Also the number inside [] dont need ' or "


repositories, "hide", and jquery cdn

I dont get it completely. What is the source of jquery?

Regarding Add repositories field . What happens if there is no repo field in jsDelivr?

I dont get it completely. What is the source of jquery?

Sorry, it's this repo. Works the same way as cdnjs and jsdelivr.

Regarding Add repositories field. What happens if there is no repo field in jsDelivr?

It's an empty array.


Add guidance on how & why to contribute

The addition looks good to me, as an extension of this PR or a separate one, we can also extend along the lines of https://llvm.org/docs/Contributing.html, e.g. mention the way to contribute: report an issue or contribute a patch. For reporting issues we should also suggest that upstream issues should be reported in upstream projects.
We can also mention that for bigger changes/new features it may be helpful to have an RFC as a Github issue first.
I can try to suggest some wording in a follow up PR, if you prefer.

Yes let's do a separate PR for that, thanks


Update behaviour

I love GRAV, best thing I ever seen exept  for the sites I programed myself of course. What really bugs me is that during theme updates the pages directory is destroyed (read renamed), instead of having the themes new demo pages in the theme directory where they IMHO belong as documentation.
An other thing that bugs the s%&*t out of me is the picture cache being destroyed. Having a few galeries means that I have to call those pages to repopulate the cache or my users will think the site is malfunctioning because that takes some time to build.  Please leave the image cache and the pages directory alone. PLEASE

That behavior you are seeing with the pages directory when updating themes is definitely not normal.
The theme should simply install over the existing theme in the user/themes/ directory.  Nothing should touch the pages directory, nor have I ever heard of anyone seeing this behavior.  So that's truly odd.  It could be the 'demo' pages, which again is not commonly used, so maybe it's a bug specifically with that.  What theme are you using and how are you updating (cli/admin)???
Regarding the image cache being cleared, there is a system setting to ensure the default cache clearing does not clear out processed images:
cache:
  clear_images_by_default: false

I will I keep an eye out on the next update. Anyway to lug whats going on when it updates the theme???

Hi @rhukster , I have now been able to duplicate this issue of the Pages folder being unexpectedly re-written during a theme update via the CLI.
Step to reproduce:

Install a theme with a _demo folder (but do not install the demo content)
Lower the Blueprints ver. # to force an update for a theme update
Once complete, you should notice a new Pages folder, and an archived Pages folder called something like pages.12-21-2018-17-26-33

Please let me know if you need any more info or need more details etc.
Thanks very much,
Paul

Hi, @paulhibbitts . After your comments in the getgrav forum, I did my daily update routine on my servers. There was indeed a theme update. In one of the servers, I updated the theme through the Admin panel, and no pages were changed.
In another server, I used the command line interface
    ```bin/gpm update```

Here, the update process moved the pages directory to a time-stamped new directory (pages.05-06-2019-09-00-36) and created a new pages directory with only the theme demo content.
Screenshots follow. I hope this may be useful.

Thanks very much for the screen caps @quartelmestre  - @rhukster I hope this helps track down this issue of the pages folder being replaced during a CLI theme update.

I think this is not the same as the original issue? Sounds like the issue might be demo content installing over existing content during an update? Please create a new issue for this.  Cheers!

Thanks Andy, as requested I've created a new issue for this #2493


chore: add missing parameters to fix yaml

Details

Add a few missing parameters from #864
Motivation

Context

Pull request checklist

[ ] Addresses an existing issue: Fixes #0000
[ ] Added relevant unit test for your changes. (yarn test)
[ ] Verified code coverage for the changes made. Check coverage report at: <rootDir>/test-results/unit/coverage
[ ] Ran precheckin (yarn precheckin)
[ ] (after PR created) The Accessibility Checks (pull_request) check should fail. All other checks should pass.

Codecov Report

Merging #865 (d81bb7d) into main (ce137e9) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #865   +/-   ##
=======================================
  Coverage   87.36%   87.36%
=======================================
  Files          39       39
  Lines         823      823
  Branches       97       97
=======================================
  Hits          719      719
  Misses        104      104

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 ce137e9...d81bb7d. Read the comment docs.


Move servers' Handler init to init()

https://github.com/miekg/dns/blob/master/server.go#L682
Setting the default handler can probably moved into the one-time init() call.

We already set UDPSize and MsgAcceptFunc to default values in (*Server).init so this makes sense to do.

done via #931


Prediction Confidence

Hi Team,
I am working on a problem which requires to have the confidence value along with the predictions as well. And having looked at the base code, I can't find a way to make it work for me.
This issue is a continuation of the issue#177, can someone help me with this?
Best.

Hi, any progress on this one? We are also very interested in getting the confidence value along with the predictions

HI, nothing yet.
Will be working on this issue later this month. Will update accordingly.


Fix IOS crash when custom_property_list is not provided as a parameter

The application crashes on IOS when optional custom_property_list is not provided as an argument

@archie-sh Thanks, for the pull request.


BUG: don't unpack options in schema_concat

This was causing some strange dshape stuff in transform:
deltas.dshape dshape("var * {sid: ?int64, asof_date: datetime, timestamp: datetime, value: float64}")
deltas.value.dshape dshape("var * ?float64")

In the full expr, value is not an option type; however, when we pull the column out, it becomes optional. The issue is that value in the base expression is dropping the option

This was definitely a bug, thanks for fixing!

Merging on pass

Roger roger


tweak sources.list after debootstrap second stage and remove keyring check in debootstrap second stage

… fail

SGTM


docstring for callbacks

Docstring addition/cleanup for callbacks. Addressed comments in https://github.com/mosaicml/composer/pull/443
Fixes https://github.com/mosaicml/composer/issues/404
Replaces https://github.com/mosaicml/composer/pull/443

Looking good!
I think some more examples would be helpful. For every callback, can we show how to construct the trainer with it? No need to train anything. (I hope this doesn't take too long; I think after writing the first example, it'll mainly be copy and paste)
Now, I'm being a real nitpick:

[ ] "# trainer will run your event as follows" -> "# The trainer will run this callback whenever the EPOCH_START event is triggered, like this:"
[ ] Can you move the examples from here (https://mosaicml-composer--470.com.readthedocs.build/en/470/api_reference/composer.callbacks.html#module-composer.callbacks) into the docstring for the Callback class (https://mosaicml-composer--470.com.readthedocs.build/en/470/api_reference/composer.core.callback.html#composer.core.callback.Callback).
[ ] "Override _run_event() (not run_event()) to run in response to all events. If this method is overridden, then the individual methods corresponding to each event name will not be automatically called (however, the subclass implementation can invoke these methods as it wishes.)" sounds confusing to me (I know I wrote it originally!) Can you take a stab at cleaning this up? It'd probably be easier to take a read at the source code and write a new docstring for this.
[ ] For https://mosaicml-composer--470.com.readthedocs.build/en/470/api_reference/composer.callbacks.callback_hparams.html, can we add a link back to https://docs.mosaicml.com/en/latest/tutorials/adding_models_datasets.html?highlight=yahp#trainer-with-yahp?
[ ] For the callbacks that log data, the tables are awesome -- makes it much cleaner what is being logged! Can you elaborate in the docstring that data is being logged via the Composer Logger (and include a reference to https://mosaicml-composer--470.com.readthedocs.build/en/470/api_reference/composer.core.logging.logger.html#composer.core.logging.logger.Logger). I know this page is a stub right now, but #400 and #403 will fill it in.
[ ] For each callback, can you move the docstring from the underlying callback method and instead into the class docstring? Then, each underlying callback method will not be documented. For example, on https://mosaicml-composer--470.com.readthedocs.build/en/470/api_reference/composer.callbacks.grad_monitor.html, I think it is slightly confusing that after_train_batch is documented since we do not expect the user to ever call this function manually. Instead, after the table, I am thinking we can say something like "This callback runs on the AFTER_TRAIN_BATCH event. It computes the L2 norm of gradients.....`, (In general, I think we probably do not want to include docstrings in concrete classes overridden methods, though there will definitely be exceptions to this!)
[ ] For the memory monitor, can you enumerate exactly which statistics are recorded (one table line per statistic?)
[ ] For https://mosaicml-composer--470.com.readthedocs.build/en/470/api_reference/composer.callbacks.run_directory_uploader.html#module-composer.callbacks.run_directory_uploader, can you link to https://mosaicml-composer--470.com.readthedocs.build/en/470/api_reference/composer.utils.run_directory.html#module-composer.utils.run_directory?
[ ] For https://mosaicml-composer--470.com.readthedocs.build/en/470/api_reference/composer.callbacks.run_directory_uploader.html#module-composer.callbacks.run_directory_uploader, can "While all uploads happen in the background, here are some additional tips for minimizing the performance impact:" and the bullets below it be in a .. note::? In addition, can we remove the separate background from the bullets?
[ ] "since data from the last upload may be lost." -> "since data written after the last upload may be lost"
[ ] "comparing and computing" -> "computing and comparing"
[ ] For the example, can you move the "do_not_validate" to the .. testsetup:: section, and perhaps monkeypatch the class RunDirectoryUploader._validate_credentials = do_not_validate? Then, in the example, we can construct the hparams, construct the callback. Instead of appending the callback directly to the state, can you construct a trainer instance that uses this callback? (No need to show the monkeypatching, train anything, or show that any uploads happened in the docstring).
[ ] "RunDirectoryUploader blocks the training loop to copy files from the run directory to upload_staging_folder and to queue these files to the upload queues of the workers." -> "This callback blocks the training loop to copy files from the :mod:~composer.utils.run_directory to the upload_staging_folder."
[ ] "Uploads are always queued at the end of the epoch." -> "In addition, uploads are queued at the end of the epoch."''

I think after this it'll be ready to merge in!

@ravi-mosaicml. Thanks for the comments.

For every callback, can we show how to construct the trainer with it?

Do you mean a doctest? or just trainer construction?

@ravi-mosaicml. Thanks for the comments.

For every callback, can we show how to construct the trainer with it?

Do you mean a doctest? or just trainer construction?

A doctest example that constructs the callback, and then constructs a trainer by appending the callback via the callbacks argument.

@ravi-mosaicml I addressed all the comments except "can we remove the separate background from the bullets?"
I am not sure how to do it. May be it's theme dependent or there is an option that can used with bullets but I didn't find such an option.


Update home.html

Related Issuse or bug
#82
#solution:
This problem will be solved if we remove the h2 and p tags
@harsh-9in @SKAUL05
Screenshots

@Ahana001 we need to do change in blog/views.py also I guess

for issue #70  we should remove from .models import post from blog/views.py

Hey @Ahana001 The issue has been resolved as i have tested it yesterday only. So  please feel free to close this one. And if you still think this PR can be merge, then please resolve the conflicts and let us know.


Computed to work with Props

I posted the below in issue #1972 but was not sure if the notifications go out because its a closed issue.
I'd like to see if the issue can be reopened. Lets say there is a component that does something like so:
// Child component
<template>

{{msg}}

</template>

And the parent script can define an instance of child like so:
<template>
  <child :msg="greeting"></child>
</template>

In my view, this creates a very powerful interaction because computed is an interface to an underlying value generator/container/producer while props declares that the values can be passed in.
Of course, I'm not that well familiar with the underlying code of Vue yet, but, internally, the props value provider can assign the value that will trigger a call to set, which will update the internal value.

I think this is more confusing than useful. In particular, having two sources for the same thing is just a big red flag. A prop should be passed in from parent, and the child should not mess around how that value is derived.
 If you can achieve what you want with them separated, then there really is no point in mixing them.

@yyx990803 Can you receive prop from parent and use it to compute a new computed?
Like
<template>

    {{ msg }}

</template>


Lost jobs when reboot

*Detailed description of the issue:
Hi, when i restart my server, Moderator and Admin lose their jobs.

Jobs version: Jobs<IP_ADDRESS>
Server Type (Spigot/Paper/etc):  Spigot
Server Version (using /ver): git-Paper-790

Hey there, can you do /ver jobs and also share the Full output?
What are the steps to reproducing this, how do you have your jobs setup?
Is this a bungee network, was it working in a previous version and has stopped working after an upgrade?
What permissions to regular players have versus the team members?
Do you use wildcard perms on the staff, are they all operators?
Which permission manager are you using?
Are you on CMILib <IP_ADDRESS> or newer?
When they have joined a job, and you Clone the jobs database, and find these players, does it show they are in fact stored in the database for those jobs?
Is the generalCOnfig having auto-join jobs, is there a max set globally, and if so, do admins/mods have a permision that they can join more jobs than others?
Do team members who lose their jobs actually lose all of them, if they type /jobs stats does it say they arent in any jobs?

I do nothing special, they join trades and the automatic reboot at 5 am they lose their advances.
no it's not a bungee server. and I think it worked before
So the players do not have any additional authorization.
yes, it is true that those who lost their trades had permission '*'
i work with LuckPerms
And CMILib: 21:12:36 INFO]: CMILib version <IP_ADDRESS>
I will try to update CMILib and I will keep you posted

CMILib <IP_ADDRESS> or newer is required probably. 1.0.x is pretttty old. Try with new lib and let us know how it goes

I have upgraded CMILib but no change :/ we lose all jobs

they do have the authorization to join as many trades as possible, and when uls do / jobs stats after a reboot it indicates that they have no trades.
I thought, it may have come from .db? whether it is defective or not

they do have the authorization to join as many trades as possible, and when uls do / jobs stats after a reboot it indicates that they have no trades.
I thought, it may have come from .db? whether it is defective or not

Well, they are only team members, you imply that it's fine for all the regular players.

they are part of the team but love to play. so it's boring for them. there is no solution ?

Same problem.

Same problem.

Can you at least contribute your /ver and /ver cmilib and /jobs version, and let us know if you use bungee, or how you've got your jobs setup a bit? No informatino isn't helping debug this.

Jobs version <IP_ADDRESS>
git-Purpur-1497 (MC: 1.18.1)
CMILib version <IP_ADDRESS>
in my case it only happens with op users
and with users who went from online to offline mode after a clean install
apparently it has something to do with the way that info is saved


It stops working after a couple mins

This is the biggest issue and needs to be addressed. Would be awesome if it worked through the duration of a session.

I noticed the recently added "AltTool"-field in the plugin, and I can see from the source code that if it contains the text "Brian5" and the chosen voice is Susan, it uses a different function and source for the TTS, and this version doesn't have the issue of the TTS stopping working after a while (or the other issue I've been experiencing, with the game freezing before each line of dialogue). Unfortunately it currently always uses the same voice called "Brian".

Duplicate of #26


map_info.py looks unfinished

The script when passing a --map should only return with a pretty format map details, a second --export command flag could actually do the download. That would be awesome

done :)

Reviewed.
Close the issue to go for carto-python 1.0.0!


Concurrency issues in %poll

Current Situation
When two polls are triggered such that they are both active at the same time, anyone who votes via %choose <n>  will vote in both polls at once.
Change
Add some kind of locking (perhaps a mutex?) around the %poll logic to prevent multiple polls from occurring at the same time.

Poll was removed until I feel like writing it. Furthermore, a collector should work like with this like google and image since message collector is a thing.


Unable to disable an option

Hi,
When I try to set an option disabled, I'm unable to do it.
Below is my sample code:
$scope.menuOptions = function (proc) {
if (proc.id == 1) {
return ['John', 'Joe', [function ($itemScope, $event) {
return $itemScope.proc.name;
}, function ($itemScope, $event) {
}, function ($itemScope, $event) {
// Enable or Disable
return false; // enabled = true, disabled = false
}]
];
}
return [
[function ($itemScope) {
return ['Name', 'Name2'];
}, function ($itemScope) {
return false;
}]
];
};
If proc.id ==1, I'm trying to return 3 items, with third one being disabled. Am I doing something wrong here?
Appreciate your help in advance.
Thanks,
Raghu

@Raghu-G You are doing everything wrong.
The menu options is supposed to be one array, where each menu item is a position inside this array.
That being said, each item is also an array, where the first position is the name of the item (of function with name), the second position is the action when clicked and the third position is a function for enable  disabled.
Your code should look something like this:
$scope.menuOptions = [
  ['John', function($itemScope, $event, $model){ /*do action*/ }, function($itemScope, $event, $model){ /*enable/disable*/ }],
  ['Joe', function($itemScope, $event, $model){ /*do action*/ }, function($itemScope, $event, $model){ /*enable/disable*/ }],
  ['Fulano', function($itemScope, $event, $model){ /*do action*/ }, function($itemScope, $event, $model){ /*enable/disable*/ }]
];

Correct. I'm going to close this issue out.


Tell users about emoji and accent effect on count

Fixes #1969.
Updates the character count guidance to tell users it counts emojis and accented characters as more than one character.
This behaviour might confuse users, if they think an emoji or accented character = 1 character, and the count ends up higher than they expected.

Alternately: could this component do the 'simpler' thing and count them as one character?
If a service wanted different rules, I'd let them provide their own counting function - but if it looks like one character, why don't we count it as one?

@edwardhorsford broadly, because there's no easy way to do that – at least not one we're aware of that works in IE without a relatively large polyfill.
I'm sure we'll be able to revisit in the future – or at the very least make the count function customisable – especially as things like our browser support requirements change.
In the meantime, listing this as a known issue at least makes folks aware of the problem.


Fix up broken/empty categories & filters

I think this will get fixed by https://github.com/ecosyste-ms/ost/issues/80

I think this will get fixed by ecosyste-ms/ost#80

Partly yes - but there were some other issues with the filters - fixed it now. :-)


Reading Message Stream Fails To Read Expected Number Of Bytes

Hi, we have bumped into a couple of scenarios where the ReserveRequest.TryGetJobFromBuffer fails to read messages because the presenting NetworkStream has not not yet 'streamed' all the bytes that were indicated  in the message header, the bytes shortfall causes an exception to be thrown.
_tcs.SetException(new Exception("Unable to parse job description"));

The problem can be fixed with an iterative approach making a number of calls to read the expected number of bytes in chunks.
Up to this point we have run millions of messages through the tubes using a simple reserve/process/delete model. It was only when we began to explore multiple reserves circa 10 messages on messages bodies of around 25K in size.
The same issues may surface in the PeekRequest and several other places where the stream.Read assumes that all bytes are ready and waiting within the stream.
Is the repo still active?
Thanks in advance

Wow, I had no idea this was being used in production by anyone.
The repo isn't really active because I don't need this library for anything. I wrote it to teach myself network programming.
However, I would welcome contributions. I would be happy to replace this nonsense with System.IO.Pipelines. I suspect that replacing "pass around the NetworkStream" with I/O pipelines would alleviate your issue.

Hello Stephen, I've added a fix for the networking code reading larger messages, see the pull request.
Would be nice if you can have a look, and update the package on Nuget if you're happy with the change.


public DoubleMatrix(int len) - documentation incorrect

It says it creates a row vector, while in reality it does create a column vector - i.e. many rows with 1 column.

Ok, should be fixed now...


test/calico/metadata_access_test.go: add support for aws_edge platform

Currently master pipeline fails because of this.

:see_no_evil:


Formatting improvements

To-be-addressed from https://github.com/talkowski-lab/gatk-sv-v1/pull/252:

Some workflows currently require index files as inputs (e.g. module00c/CNMOPS). They should either be given default values or removed as inputs altogether.
Some tasks require index files as inputs. This matters in some cases because tasks are called from other workflows, requiring passing the input files around (e.g. ClinicalFiltering.wdl::resetFilter line 392, called from GATKSVPipelineClinical).
Because of the previous points, some workflows are still passing around index files. Note some index files have _idx in the file name, and some have _index
Camel case convention: I think in most projects acronyms are treated as "words", hence CNMOPS -> Cnmops, GATKSVPipelinePhase1 -> GatkSvPipelinePhase1. We've just been treating them as a grey area. I don't think this is a big deal, but since you're going through and making a camel case fix, I wanted to take the time to get an explicit statement on how we treat acronyms.
There are a few remaining references to "fam_file" instead of "ped_file"
-- "runtime_override_merge_fam_file_list" in GATKSVPipelineClinical.wdl
-- "cleaned_fam_file" in master_vcf_qc.wdl
-- "fam_file" in several of the mosaic WDLs

Module00a outputs pesr_disc and pesr_split files, and Module00c takes them as inputs but calls them PE_files and SR_files respectively
Many inputs/outputs are named manta_vcf (or wham_vcf, melt_vcf, etc.) but do not always refer to the same file/type of file. Some are raw VCFs from the callers, some are standardized, and some are clustered. It would alleviate confusion to prefix them with the type, ie. call the Module01 input std_manta_vcf to match the name of the corresponding Module00c output.

Echoing @ekarlins from #345 here:
There are a lot of output files on Terra for each run of GATK-SV. The output files populate the data tables and are sorted in alphabetical order by output name. It's sometimes difficult to tell which step produced each output. Is it possible to add the module number to the beginning of the output name to make this more obvious?
Thank you, great idea! We are generally trying to cut down on the number of data table columns needed, but given the number of modules this is likely to stay relevant for a while.

Thanks @mwalker174!


Anti aliasing in 3.1 GLES2 Renderer

It looks like there is no way to get 3D anti aliasing in the new GLES2 renderer. The MSAA option is still present, but it does nothing. I'm currently evaluating the GLES2 renderer for my game but no AA is a deal breaker.

MSAA for GLES2 is quite complicated given there are three different ways it needs to be implemented.
I honestly didn't have time to do it, so volunteers are welcome. This is a post-3.1 feature though, but I offer guidance to anyone willing to implement it.

It would also be worth looking at the FXAA implementation from 2.1 to see if it can be reimplemented in 3.1.

Well, maybe for nowadays uses, implementing this may be enough:
https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multisampled_render_to_texture.txt
As I don't think supporting old Tegra chipsets is worth it (they have a special extension)

Implementation strategy is rather simple, you need to create an extra buffer for MSAA rendering (needs to be a renderbuffer, NOT a texture, and needs it's own multisampleddepth buffer), and resolve to the main one when you need it (as in, done drawing 3D, or using the _copy_screen function used for SCREEN_TEXTURE).

Right now you can use shaders and viewports to have FXAA, I currently have an implementation of this and it works fine. Obviously having MSAA is one of the reasons many choose Godot so having it in gles2 would be a welcome addition.