[SPARK-25669][SQL] Check CSV header only when it exists

What changes were proposed in this pull request?
Currently the first row of dataset of CSV strings is compared to field names of user specified or inferred schema independently of presence of CSV header. It causes false-positive error messages. For example, parsing "1,2" outputs the error:
java.lang.IllegalArgumentException: CSV header does not conform to the schema.
 Header: 1, 2
 Schema: _c0, _c1
Expected: _c0 but found: 1

In the PR, I propose:

Checking CSV header only when it exists
Filter header from the input dataset only if it exists

How was this patch tested?
Added a test to CSVSuite which reproduces the issue.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Test build #97050 has started for PR 22656 at commit 676e558.

Test build #97050 has finished for PR 22656 at commit 676e558.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/97050/
Test FAILed.

jenkins, retest this, please

Test build #97053 has started for PR 22656 at commit 676e558.

Test build #97053 has finished for PR 22656 at commit 676e558.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/97053/
Test PASSed.

@HyukjinKwon Could you look at the PR, please.

Merged to master and branch-2.4.


Improve Completion Panel Position in Shader Editor

Fixes #46207.
Result:

Since this affects all TextEdit nodes in use in a project, make sure to test this change for regressions in the script editor as well.

Yes, I will pay extra attention to that. Also, I realized the current solution is not very good as it makes the panel appear above the cursor line by default, while originally the opposite is the case (also more reasonable). I will think of a more appropriate solution.

I just added an extra condition cursor_pos.y > total_height when deciding the panel position so the panel only go above when there is enough room to show the first hint.

I tested this PR locally. This is how it behaves on the latest master branch with single-window mode enabled in the Editor Settings:
https://user-images.githubusercontent.com/180032/111853988-623aa700-891d-11eb-9f52-4c4dd8cf0abe.mp4
It doesn't look like intended behavior to me.

@Calinou By that behavior you mean the panel disappears when the currently edited line goes out of the shader editor's visible scope? I suppose that is the the original behavior that has nothing to do with this PR or the single-window mode.
Using the latest unofficial Windows build provided by you at https://hugo.pro/projects/godot-builds/ with the single-window mode disabled:

@floppyhammer I see. In this case, I think this is good to merge :slightly_smiling_face:
To cherry-pick to the 3.x branch, we may want to wait until 3.3 released since this could potentially introduce regressions (especially since TextEdit can be used in projects).

Thanks! And congrats for your first merged Godot contribution :tada:

@akien-mga Yay!

Cherry-picked for 3.4.


Add accessor methods to PyByteArray

Closes #632 .
This adds PyByteArray::data and PyByteArray::as_bytes as proposed in that issue.
I decided to also add as_bytes_mut, but if you think it's too far I can happily remove it. (Users can always implement themselves using std::slice::from_raw_parts_mut(b.data(), b.len()).)

Thank you!


STI Problem

I have following model:
class Businessman < ActiveRecord::Base
    has_paper_trail
end

class Businessman::Product < ActiveRecord::Base
    has_paper_trail
end

When I create Businessman::Product records, the versions table save Businessman instead of Businessman::Product
How to fix that? I am using 4.x paper_trail

.. the versions table save Businessman instead of Businessman::Product ..

Does versions.item_type == "Businessman"?
Have you tried a parent module instead of parent class?
module Foo
  class Product
    has_paper_trail
  end
end

Also, you have titled this issue "STI Problem" but the has_many :versions association is a polymorphic association. Where is STI involved?

@jaredbeck sorry, this code should be:
class Businessman < ActiveRecord::Base
    has_paper_trail
end

class Businessman::Product < Businessman
    has_paper_trail
end

 .. the versions table save Businessman instead of Businessman::Product ..

Does versions.item_type == "Businessman"?

The item_type always Businessman

That's interesting, because item_type is set by has_many and I'll be really surprised if there's a bug in has_many :)
Please try to reproduce this using our bug report template.

@jaredbeck , thanks for your reply. I create a demo project  for reproduce , also as error template:
# Use this template to report PaperTrail bugs.
# It is based on the ActiveRecord template.
# https://github.com/rails/rails/blob/master/guides/bug_report_templates/active_record_gem.rb
begin
  require "bundler/inline"
rescue LoadError => e
  $stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
  raise e
end

gemfile(true) do
  ruby "2.2.3"
  source "https://rubygems.org"
  gem "activerecord", "4.2.0"
  gem "minitest", "5.8.3"
  gem "paper_trail", "4.0.0", require: false
  gem "sqlite3"
end

require "active_record"
require "minitest/autorun"
require "logger"
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
ActiveRecord::Base.logger = Logger.new(STDOUT)

ActiveRecord::Schema.define do
  create_table :users, force: true do |t|
    t.text :first_name, null: false
    t.timestamps null: false
  end
  create_table :versions do |t|
    t.string :item_type, null: false
    t.integer :item_id, null: false
    t.string :event, null: false
    t.string :whodunnit
    t.text :object, limit: 1_073_741_823
    t.text :object_changes, limit: 1_073_741_823
    t.integer :transaction_id
    t.datetime :created_at
  end
  add_index :versions, [:item_type, :item_id]
  add_index :versions, [:transaction_id]

  create_table :version_associations do |t|
    t.integer  :version_id
    t.string   :foreign_key_name, null: false
    t.integer  :foreign_key_id
  end
  add_index :version_associations, [:version_id]
  add_index :version_associations, [:foreign_key_name, :foreign_key_id],
    name: "index_version_associations_on_foreign_key"
end

# We must wait to require `paper_trail.rb` until after the
# `version_associations` table exists or else PT won't track associations.
require "paper_trail"

class User < ActiveRecord::Base
  has_paper_trail
end

class User::David < User
  has_paper_trail
end

class BugTest < ActiveSupport::TestCase
  def test_1
    b = User::David.create first_name: "David"
    assert_equal(b.versions.first.item_type, 'User::David') # it will fail
  end
end

I create a demo project for reproduce , also as error template

Thanks David! That's very helpful. I will mark this as a confirmed bug.

@jaredbeck , Hi, I found similar issues on this project, seems i am not alone, https://github.com/airblade/paper_trail/issues?utf8=✓&q=sti

Our next step should be to convert your bug report script to a test in the PT test suite.

Understood that the example you provided with the template is a very simplistic case, but I'm not sure that ActiveRecord can differentiate in a case like this easily either. I say this because in the case provided, both record types are being inserted into the users table, so this also rings true:
# Use this template to report PaperTrail bugs.
# It is based on the ActiveRecord template.
# https://github.com/rails/rails/blob/master/guides/bug_report_templates/active_record_gem.rb
begin
  require "bundler/inline"
rescue LoadError => e
  $stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
  raise e
end

gemfile(true) do
  ruby "2.2.3"
  source "https://rubygems.org"
  gem "activerecord", "4.2.0"
  gem "minitest", "5.8.3"
  gem "paper_trail", "4.0.0", require: false
  gem "sqlite3"
end

require "active_record"
require "minitest/autorun"
require "logger"
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
ActiveRecord::Base.logger = Logger.new(STDOUT)

ActiveRecord::Schema.define do
  create_table :users, force: true do |t|
    t.text :first_name, null: false
    t.timestamps null: false
  end
  create_table :versions do |t|
    t.string :item_type, null: false
    t.integer :item_id, null: false
    t.string :event, null: false
    t.string :whodunnit
    t.text :object, limit: 1_073_741_823
    t.text :object_changes, limit: 1_073_741_823
    t.integer :transaction_id
    t.datetime :created_at
  end
  add_index :versions, [:item_type, :item_id]
  add_index :versions, [:transaction_id]

  create_table :version_associations do |t|
    t.integer  :version_id
    t.string   :foreign_key_name, null: false
    t.integer  :foreign_key_id
  end
  add_index :version_associations, [:version_id]
  add_index :version_associations, [:foreign_key_name, :foreign_key_id],
    name: "index_version_associations_on_foreign_key"
end

# We must wait to require `paper_trail.rb` until after the
# `version_associations` table exists or else PT won't track associations.
require "paper_trail"

class User < ActiveRecord::Base
  has_paper_trail
end

class User::David < User
  has_paper_trail
end

class BugTest < ActiveSupport::TestCase
  def test_1
    b = User::David.create first_name: "David"
    assert_equal(User.last.attributes, User::David.last.attributes)
  end

  def test_2
    assert_equal(User.table_name, User::David.table_name)
  end
end

What I'm saying, is that there is only 1 record at the database level in this case, but because of the funky way you setup the housing of one model inside the other, ActiveRecord / Ruby allows you to evaluate it in runtime as if there are different types of records, but in reality, it is the same entry at the database level. I'm just wondering what the use-case is, since this seems like an attempt to almost hack PaperTrail into returning special in memory object wrappers around database rows that otherwise would not be able to differentiate themselves from each other, correct?
Unless you also have a type column at the database level in your real life example, which is not being provided in this example.

Also, for historical context, the original incarnation of how it determines which class name to insert dates all the way back to #167, which was done to accommodate inheritance in ActiveRecord classes in more traditional single table inheritance setups. Your setup seems more unique than most in that you are using a combination of single table inheritance and namespacing.

@batter thanks for your reply, I am sorry for the mistake in template, I miss the type field on the users table, it not real code, But you can checkout my test project

I am sorry for the mistake in template, I missing the type field on the users table, it not real code, But you can checkout my test purpose project

In David's test project the models are defined as follows:
create_table :businessmen do |t|
  t.string :name
  t.string :type
  t.timestamps null: false
end

# app/models/businessman.rb
class Businessman < ActiveRecord::Base
  has_paper_trail
end

# app/models/businessman/product.rb
class Businessman::Product < Businessman
  has_paper_trail
end

Now that we know more about this issue, I don't think we can support this use case. I will close this issue.
In general, it's probably a bad idea for Product to extend Businessman and be namespaced under Businessman. Try removing the namespacing.
It is also a questionable decision to have Product extend Businessman in the first place, because in the real world, a product is not a type of man. Class inheritance should mirror the real world. I recommend reading Practical Object-Oriented Design in Ruby which covers this well.


Add ability to configure clickhouse client read timeout

Default changed from 60 to 300, allow to configure with CLICKHOUSE_READ_TIMEOUT env variable.

LGTM


Changed to an es6 class and added functionality.

Ive changed the component to be an ES6 one, clean the code and now its lint error proven!

Looks nice, but it breaks the build process when running npm run build, which compiles .jsx to .js.
Can you add the proper way to build it?


Invalid kind enum

While not getting response regarding this bug: https://github.com/GetDutchie/datadog_flutter/issues/64 I had to dig deeper into datadog java code regarding this error:

It appears that Enums that you are using in stopResoureceLoading are lowercased and in datadog java sdk all enums are uppercased: https://github.com/DataDog/dd-sdk-android/blob/2b9d9cce4d3e557bcf2881ae3613668923bcb7e1/dd-sdk-android/apiSurface (search for enum com.datadog.android.rum.RumResourceKind)
When added upercase FETCH problem was gone.
Please update default value and documentation

PRs are open!

Being addressed in #69


Reproduce integration test (discord.dart) locally?

I added a bot token I created specifically to test this API, but it doesn't seem to work. I get a connection, but never get a 'ready' event. From what I can tell, I might need to belong to a specific guild or have some other configuration for my test account to run.
Any idea?

You should be receiving ready, unless it is a user bot (user bots are broken rn). But the test is not reproducible without edits and might be removed anyways.

Fair enough. I'll close this and open another issue to add a new integration test.


Look into BackTracking affect on new test model

#1697 increased the performance considerably, and passed the tests with only slightly higher tolerances.
Surprisingly @Fati-Mon observed this behavior on a Basin running dry:

We need to look into what is going on here.

I guess it's possible that storage still ends up just barely negative somehow and one of the du terms blows up when it sees a negative storage?

Hmm good point. It shouldn't be too late: if it converges with a negative storage, it should still be rejected.
Both the callback and isoutdomain should be triggered. So in this case I guess there's really no negative storage involved.
Maybe some term that isn't smooth enough around S = 0?
Does any other water balance term jump?

Yeah perhaps we are stepping completely over a reduction factor here. The inflow is 29 m3/s and the outflow 62 m3/s. The outflow should go down to the inflow due to the reduction factors, but all I see is a brief minor dip in the outflow over the Outlet (50 m3/s), and no reduced flow to the UserDemand (12 m3/s).
The complete water balance at the start of the anomaly:

time
node_id
storage
level
inflow_rate
outflow_rate
storage_rate
precipitation
evaporation
drainage

2023-11-22
3
5.3E+06
6.1E+01
2.9E+01
6.2E+01
-3.3E+01
0.0E+00
0.0E+00
0.0E+00

2023-11-23
3
2.4E+06
4.1E+01
2.9E+01
6.2E+01
-2.7E+01
0.0E+00
0.0E+00
0.0E+00

2023-11-24
3
9.5E+04
7.9E+00
2.9E+01
6.2E+01
1.1E+04
0.0E+00
0.0E+00
0.0E+00

2023-11-25
3
9.4E+08
8.2E+02
2.9E+01
6.2E+01
3.8E+04
0.0E+00
0.0E+00
0.0E+00

2023-11-26
3
4.2E+09
1.7E+03
2.9E+01
6.2E+01
6.5E+04
0.0E+00
0.0E+00
0.0E+00

The model looks like this:

And can be downloaded here:
crystal.zip
The results with v2024.10.0 look much better. When in > out, the storage is going up from 0, when out > in, the storage goes down to 0. When storage is 0, out will never go above in, so they are the same.

A few more observations. QNDF, TRBDF2 and KenCarp4 all have similar issues. If you reduce the tolerances you get an unstable error. ImplicitEuler does seem to produce the correct results with backtracking. On the HWS model I couldn't directly eyeball large convergence issues with QNDF, though there are no empty Basins there. HWS with backtracking runs in 47s for QNDF and in 2m19 for ImplicitEuler.
Perhaps for now we should make backtracking opt-in for now while we explore this issue. Perhaps we can look at what is happening with backtracking more in detail, based on https://github.com/SciML/OrdinaryDiffEq.jl/pull/1792.
This made me realize #1413 needs a v1.0 label, because that helps to just error out on these issues to protect users.

@visr you can also try different linesearch algorithms for relaxation (https://github.com/JuliaNLSolvers/LineSearches.jl) but some more insight would be very helpful.
Also, we've probably discussed this before, but what about incorporating the water balance error in isoutofdomain?

Yeah I can do that next week. I think the water balance error is important to address, #1413., Not sure if isoutofdomain should be used for this (at least the name sounds wrong), though perhaps one of https://docs.sciml.ai/DiffEqCallbacks/stable/step_control/ makes sense.

Just to make sure I'm reading properly: the upper plots show timeseries that are totally wrong? It flies off course immediately, right?
And secondly: the same solver doesn't run into this problem when there's no relaxation?
In my understanding, the relaxation only limits the update of the Newton-Rhapson step. The check for convergence should be the same -- so I don't understand how I can find such a radically different solution.

@Huite you say limits the step and I thought so too, but I haven't seen anything in the linesearch that indicates that the step cannot be bigger than the original Newton step

Doing some homework on the solvers:

Newton-Rhapson with ImplicitEuler is straightforward: for each Newton iteration, compute the Jacobian at $u_i$, then solve for $u_{i + 1}$
QNDF uses a Quasi Newton (Difference Formula) method. The quasi part comes from the fact that it uses an approximate Jacobian, trying to avoid a full Jacobian update. When it degrades too much (not sure how this is detected), it should do a full Jacobian reformulation.
TRBDF2 and KenCarp4 are so called ESDIRK methods: Explicit first stage, Single diagonal coefficient, Diagonally Implicit Runge-Kutta.

The DiffEq docs mention:

For asymptotically large systems of ODEs (N>1000?) where f is very costly, and the complex eigenvalues are minimal (low oscillations), in that case QNDF or FBDF will be the most efficient. QNDF and FBDF will also do surprisingly well if the solution is smooth. However, this method can handle less stiffness than other methods and its Newton iterations may fail at low accuracy situations. Other choices to consider in this regime are CVODE_BDF and lsoda.

Curious whether CVODE_BDF or lsoda fail in a similar way.

@Huite you say limits the step and I thought so too, but I haven't seen anything in the linesearch code that indicates that the step cannot be bigger than the original Newton step

I think it's this in:
https://github.com/JuliaNLSolvers/LineSearches.jl/blob/3259cd240144b96a5a3a309ea96dfb19181058b2/src/backtracking.jl#L22
α is the size of the update, default size is 1:
α_0::Tα = real(T)(1)

α = 1 is a standard Newton step.
Then it's updated:
α_0 = min(α_0, min(alphamax, ls.maxstep / norm(s, Inf)))

So α_0 shouldn't exceed 1.0 (unless you fiddle with it?).
Then in the actual function, it's doing interpolation via either a quadratic or a cubic and finding the zero for it.
I think these lines mean it's limited:

α_1, α_2 = αinitial, αinitial

# interpolation
# ...

α_tmp = NaNMath.min(α_tmp, α_2*ρ_hi) # avoid too small reductions
α_2 = NaNMath.max(α_tmp, α_2*ρ_lo) # avoid too big reductions

Defined above:
    ρ_hi::TF = 0.5
    ρ_lo::TF = 0.1

So after the first iteration 0.1 <= α_2 <= 0.5.
Afterwards, it should only get smaller. (Unless something's changing defaults.)

To get a slightly better feeling for these methods: https://www.stochasticlifestyle.com/differences-between-methods-for-solving-stiff-odes/

TL;DR: I still think we should give this a try

The outflow should go down to the inflow due to the reduction factors

@visr that is not how it is implemented now, but that is what is suggested here. Currently outflows of a basin don't depend on inflows (only on the storage), but to me it makes sense that that would be the case. Note that this adds new non-zeros to the Jacobian, which is much easier to play with with https://github.com/Deltares/Ribasim/pull/1606 in place (at least we can test with dense Jacobians).
I played around a bit with writing a custom line search algorithm, from which I learned that:

The solver is happy to work with negative storages as intermediate results in the non-linear solver. That makes sense now that I observed it, and hints at when isoutofdomain is triggered.
I tried enforcing non-negative storages with a custom line search but that does not work, because line search is not always triggered, I guess because sometimes the initial guess for the non linear solver is already good enough
The fraction α of the step can get extremely small, in the order of 1e-19.

I also learned (with the help of claude.ai) that QNDF does a predictor step based on previous results, which I can imagine can be very off with an abrupt change in dynamics due to the reduction factor

Currently outflows of a basin don't depend on inflows (only on the storage), but to me it makes sense that that would be the case. Note that this adds new non-zeros to the Jacobian, which is much easier to play with with https://github.com/Deltares/Ribasim/pull/1606 in place (at least we can test with dense Jacobians).

But the storage does depend on the inflows, and outflows depends on the storage. So in the (linearized) system of equations outflows clearly do depend on the inflows.

The solver is happy to work with negative storages as intermediate results in the non-linear solver

So the result of a Newton iteration might contain negative storages?
Does this mean it's calling the rhs function (water_balance!) with negative storages?
How many of our du/dt terms are robust for negative storage? Now that I think of it, it might be smart to have unit tests in place for each du/dt term so they we know they accidentally explode. I reckon every potential outflow should return 0 for negative storage (?).

it is much more finnicky to find a steady state solution for depleted basins with in- and outflow (the solver has to find exactly that storage where the reduction factor makes the outflow match the inflow, in hindsight that's probably what you meant Martijn)

I don't follow why is is more finnicky? Isn't a basin always above depletion if there's still outflow? The outflow is distributed across different terms, each very small. The linearized problem provides enough information that the linear solver can find such a point, although it may result in negative storage. If the next rhs evaluation results in setting all outflows to 0, the next iteration should result in a small positive storage again.
Apparently the solver will dip into negative storage, re-formulate, and then converge with (wrong) positive storages -- otherwise the solution would be rejected. Shouldn't that go away it outflow becomes zero with negative storage then?

Does this mean it's calling the rhs function (water_balance!) with negative storages? How many of our du/dt terms are robust for negative storage? Now that I think of it, it might be smart to have unit tests in place for each du/dt term so they we know they accidentally explode. I reckon every potential outflow should return 0 for negative storage (?).

Per docstring of the PositiveDomain callback (sorry for the garbled math statements):

Please note, that the system should be defined also outside the positive domain, since even with these approaches, negative variables might occur during the calculations. Moreover, one should follow Shampine's et al. advice and set the derivative xi′xi′ of a negative component xixi to max{0,fi(x,t)}max{0,fi(x,t)}, where tt denotes the current time point with state vector xx and fifi is the ii-th component of function ff in an ODE system x′=f(x,t)x′=f(x,t).

Good point, I remember reading this. The Shampine paper is this one:
https://www.sciencedirect.com/science/article/abs/pii/S0096300304009683
From the PDF, with non-garbled math:

Ha, we had implemented that advice but removed it when we started using isoutofdomain, see https://github.com/Deltares/Ribasim/pull/639/files. I'll try adding that back and see the effect.

Uh I think setting the total du to zero might not be the best solution. I'm not privy enough to the fancier solvers which track several previous iterations, but if you're using ImplicitEuler, it will base du only on the last iteration. In that case, if u < 0, then du for those states will be set to zero as well.
Instead, I think you should allow positive terms (inflow), but truncate negative terms. That way, if you end up below zero it can still go back in the positive.

Other suggestions:

just try a scalar relax value.

Evaluatel resdiual and repeatedly apply a scalar value (both SWAP and MODFLOW 6 use this approach):

SWAP:

MODFLOW:

Fixed by #1761.


Avoid unnecessary call when sampling=1

Call to "bpf_get_prandom_u32() % sampling" not necessary when sampling is 1

/lgtm

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 34.50%. Comparing base (cb2cf53) to head (cd834c7).
Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #313      +/-   ##
==========================================
+ Coverage   33.63%   34.50%   +0.86%
==========================================
  Files          47       48       +1
  Lines        3865     3371     -494
==========================================
- Hits         1300     1163     -137
+ Misses       2477     2111     -366
- Partials       88       97       +9

Flag
Coverage Δ

unittests
34.50% <ø> (+0.86%)
:arrow_up:

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

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

/approve

/lgtm


Not working

I have a iphone 6, iOS 12.5.5
I installed "latest version YouPIP " + "latest YouTube version" but it doesn't working
To make sure that no tweak conflict, I restored my phone then jailbreak and only install this tweak but it still doesn't working
I have a screenshot of the install's detail:

Can you fix it pls :((
Thank you very much for this useful tweak

Update to 1.5.15

@PoomSmart Does Youtube Reborn or some such tweak conflict with this tweak?

@NguyenASang Not on its own unless YT Reborn does something weird.

@PoomSmart Can you explain it more detail, I'm not good at English and "Google Translate" translates something very weird

@NguyenASang Let's just say: YouPiP doesn't conflict with YouTube Reborn.

@PoomSmart Oh, Thanks but wait me a minute. I still have some questions :))

@PoomSmart How about YTReExplore, YTNoShorts, NoInfoYT ?

YouPiP conflicts with nothing except for its clones from elsewhere.

Okay thanks for reply, I will test it out.

No way, it still doesn't work :((
Even using Pip button or using auto Pip 🤔
And still get error when install it:

Hope you can fix it.

The red line in your image, it’s not an error
Automatic PiP (native PiP) requires iOS 14.0+

How about pip button, it doesn't work

@PoomSmart Can you reopen this issue ?

@PoomSmart Are you still working on a fix?


after the export, a progress bar remains in the application icon (macOS)

macOS Sonoma 14.3.1
Obsidian 1.5.3
Webpage HTML Export 1.8.0
before export

after export

I'll look into this

The same bug confirmed on:
Mac OS Ventura 13.1
Webpage HTML Export  1.18.01
Obsidian 1.5.12


Blows up when trying to print a long line.

[x] I am on the latest Hyper.app version
[x] I have searched the issues of this repo and believe that this is not a duplicate

OS version and name: Mac OS Sierra 10.12.3
Hyper.app version: <IP_ADDRESS>8
Link of a Gist with the contents of your .hyper.js: https://gist.github.com/mruhlin/d099e0dd089c53eb49b1948b114b1267
Relevant information from devtools (CMD+ALT+I on Mac OS, CTRL+SHIFT+I elsewhere): "Uncaught TypeError: Cannot read property 'wcNode' of undefined"  (uh, it's minified, but the code looks like it's trying to do something related to splitting the long string into multiple lines.
The issue is reproducible in vanilla Hyper.app: Is Vanilla

Issue
I'm working in a ruby cli and printing large objects.  At a certain size, the UI just stops printing mid-string and hangs.  I've tested it out locally just by making big strings, and it appears to be somewhat varied in how big the line is before it blows up.

open new hyper window
open new ruby console: irb
print a string that is made up of 1000 Xs: puts "X" * 1000.  This one works
print a string that is made up of 10000 Xs puts "X" * 10000. This one breaks.  UI appears to hang.  Opening developer tools shows the console error "Uncaught TypeError: Cannot read property 'wcNode' of undefined".

Substitute larger numbers if 10000 works for you.  In my testing I've seen it handle 5000 just fine some times and blow up at 1250 other times.
Note that I am able to echo large lines from bash, cat a long single-line file, etc no problem.  So there might be something unique to ruby going on here?

Found #1681, which seems to be the same as this.
Not sure if I agree with the resolution there linking it to #687.  #687 is about things being slow whereas this is about things outright breaking.

You know what, I might need to take back my last comment.  I tried this again on 1.3.2, and am no longer able to reproduce the exception.  I mistook slow output for another occurrence of the exception.  It eventually finished.

Reproduced on v1.3.3.
I'm reopening it because of your good and simple HTR!
And #687 seems to be more a general performance question.

echo {0..10000} hangs up Hyper for many minutes. The macOS terminal doesn't even lag.
echo {0..1000} takes about 5 seconds for me to display.
Output of echo {0..1000}:
real    0m0.047s
user    0m0.037s
sys     0m0.001s

Just tried the pre-release 2.0.4.
It has very little overhead for displaying long lines.
echo {0..1000000} is not a problem anymore.

Thank you for you feedback


added flow feature + help message

Added !timer flow, !timer pomo and !timer help commands, added .prettierrc file to standardise prettier config in this project

I started the timer, then I tried to use !timer flow but it says that the Timer is already started
Am I misunderstanding how to use it?

Looks like the timer needs to be paused first before entering flow state, my understanding from the instructions that's not necessary, can we make it so that if using !timer flow it automatically pauses the timer and starts flow state and vice versa when using the !timer pomo


Revise PMD's rules before PMD 7.0.0

Almost  all PMD rules used now marked as deprecated.
All rules moving to other rulesets.

@DarkWeird where does this rulesetfile come from, it is not part of the source?
pmd {
    ignoreFailures = true
    ruleSetFiles = files("$rootDir/config/pmd/pmd.xml")
}

@DarkWeird where does this rulesetfile come from, it is not part of the source?
pmd {
    ignoreFailures = true
    ruleSetFiles = files("$rootDir/config/pmd/pmd.xml")
}

We storing rules at
https://github.com/MovingBlocks/TeraConfig
Or did storing and did using... Don't sure.

uff ... yes. it is in the main build.gradle
task extractConfig(type: Copy) {
    description = "Extracts our configuration files from the zip we fetched as a dependency"
    from {
        configurations.codeMetrics.collect {
            zipTree(it)
        }
    }
    into "$rootDir/$dirConfigMetrics"
}

fixed the warnings, accd to https://docs.pmd-code.org/latest/pmd_release_notes_pmd7.html, here:
https://github.com/MovingBlocks/TeraConfig/pull/19
if you could release a new version please @DarkWeird so we can include it later on.


cleanup example

I moved the test example to test folder, as it's a bit messy with test morphologies, and created a cleaner example with morphologies from neuromorpho.org, as done in diameter-synthesis example.

@adrien-berchet , can we bypass codecov on that one? I just added a few if to bypass mtype  stuff if there is no mtype

@adrien-berchet , can we bypass codecov on that one? I just added a few if to bypass mtype stuff if there is no mtype

Yeah it's no big deal. I think I can force merge, can't you?


fixes issue #6 : Changes directory structure

Project files (pom.xml, src/, etc) have been moved one directory up.

Closed PR on accident


S.value multiple updates with no listeners fail

If you create an S.value and update it multiple times before attaching any listeners, the Value erroneously reports conflicting values.
var foo = S.value(100);
foo(200); // Succeeds
foo(300);
// Error: conflicting values: 300 is not the same as 200

I believe this happens, because on line 267 the DataNode does not cause to RootClock to tick if it has no listeners. So S.value's age is equal to the RootClock.time causing the fault.
A fix would be to preserve the age of the S.value when RunningClock == null and no listeners.
        if (arguments.length === 0) {
            return node.current();
        }
        else if(RunningClock === null && node.log === null) {
            return current = node.next(update!);
        } else {
            var same = eq ? eq(current, update!) : current === update;
            if (!same) {
                var time = RootClock.time;
                if (age === time)
                    throw new Error("conflicting values: " + update + " is not the same as " + current);
                age = time;
                current = update!;
                node.next(update!);
            }
            return update!;
        }

This is hotfixed by always setting this.log = new Log() in the DataNode constructor. It looks like an optimization to reduce memory usage (❤ always appreciated) but that gets bugged when no computations actually use the value.


Possible to support G series kindles?

I have a Kindle Oasis 2, serial starts with G000: https://wiki.mobileread.com/wiki/Kindle_Serial_Numbers
Is it possible to support these? I'm not sure if/how the calculation would change for these models.

@tpitale No clue, sorry!

No worries. It seems to work, but I'm trying some more things.
I'll send a PR if I feel I can confirm.


Option for bigger file preview with the preview pane

Problem
When going through images the maximum size that image is displayed in the preview pane is a small.
Solution/Idea
Having the option to hide the metadata and just view the image and/or resize the preview pane to make it bigger would greatly improve the usability for going through photos.
Alternatives
Opening every file you want to see (slow)

Thanks for the report. Latest preview version has the ability to make the preview pane a lot wider than before.


Add macros to Tester input files

Perhaps JavaPreProc can be reorganized to be usable from within Tester.

Or perhaps we could have a simpler system with just $define and ${macro} and that would be enough.


Remove unused import

from textual import events is not used. The demo runs successfully without it.

FWIW, this little PR is not for Hacktoberfest :D Just trying to follow Brett Cannon's advice to make small contributions where you can.

All good!


Openrouter integration

Hey, dear creator of the project! It would be nice to add support for openrouter LLMs as it becomes really popular and powerful solution.
Also openrouter accepts payments in crypto which I'm using a lot, so it is kinda difficult for me to pay for OpenAI API

This should be fairly easy to achieve but I don't have openrouter setup locally at the moment. If you want to have a go at it, it will likely look similar to this PR someone wrote which added support for ollama https://github.com/mikekelly/AgentK/pull/5

I'm in the same boat.  Can we set OpenAI base URL??  OPENAI_API_BASE
if so its is no problem to get Openrouter and LiteLLM working.


Dead code hunt, deleted some unused files

Some unused scripts were deleted!
Script/Codes in SWDT and its usage
Hierarchy of SWDT repo with codes in it and their uses.
sig-windows-dev-tools/

    experiments/image-builder/

        overlays/

            vm-guest-tools.ps1 -- This is used by image-buils.sh

        image-build.sh -- An experimental script used to build a Windows node images from scratch
     forked/

        config.ps1 -- It is being used by node-service.ps1 for setting Env variables.

        node-service.ps1 -- Nowhere we are using (This is taken from main Calico folder).

        StartKubelet.ps1 -- It is used by SWDT/sync/windows/forked.sh that applies this file if the version of k8s is greater than 1.23 (This is taken from kubernetes-sigs/sig-windows-tools/kubeadm)

    kpng/ -- Consists yaml folders!

    sync/

        linux/

            antrea-0.sh -- Used by Vagrentfile to install Antrea to the cluster.

            calico-0.sh -- Used by vagrentfile that runs calico installer.

            controlplane.sh -- Used by Vagrentfile to setup the control plane.

            e2e.sh -- Used by Makefile to run e2e teste and also in wine2e.yaml.

        shared/ -- No script files present here just a README file with stub text. Deleted.

        windows/

            0-antrea.ps1 -- Used by Vagrentfile that downloads and installs components suchas NSSM, Antrea, and OpenSSL.

            0-calico.ps1 -- Used by Vagrentfiles and installs the calico networking plugins.

            0-kubelet.ps1 -- Nowhere used! Deleted.

            1-antrea.ps1 -- Used by Vagrentfile that installs and configure Antrea CNI plugin for k8s on windows node.

            1-calico.ps1 -- Used by vagrentfile that installs and starts calico

            forked.ps1 -- Used by Vagrentfile.

            ssh.ps1 -- Nowhere used! Deleted.

    build.sh -- Used by Makefile to build binaries.

    fetch.sh -- Used by Makefile

    Makefile

    Vagrentfile

Deleted files:

debug-power-shell-cmds
doubt
sync/linux/untitled
sync/shared/README
sync/windows/0-kubelet.ps1
sync/windows/forked.ps1

/close

/close


@Everyone mention is not supported with the bot in group chat

Type of issue
Other (describe below)
Feedback
@mention of user with the bot will work. But @Everyone mentioning is not supported with the bot. Please add note for the same.
Page URL
https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/channel-and-group-conversations?tabs=dotnet#work-with-mentions
Content source URL
https://github.com/MicrosoftDocs/msteams-docs/blob/main/msteams-platform/bots/how-to/conversations/channel-and-group-conversations.md
Author
@surbhigupta
Document Id
f9877c67-43d2-78a5-dcf2-fd0ca4de2339

Hello @surbhigupta12 - Please help to update the documentation.


Use static log messages

This plays better with logging systems: those will often group logs by
message, showing how many time similar events happened.
Fixes #187
Not using placeholders for now because I don't know how widely used they are, tell me if you want me to.
I fixed 2 out 18 occurrences for now, but I like early feedback.
EDIT: 18/18

I thought you were talking about the AckProcessor only! :o
Given my usage it looks fine for me.
WDYT @stof @olaurendeau @lyrixx?
BTW, placeholders are very useful to have an information in both the message & the context. In your case, it doesn't make sense as you won't have the same message for all logs.

I like this move for level >= error. For lower it does not worth it imho

@lyrixx please have a look at the linked issue, the level for which I am the most interested in this is info. I want to know how many messages were correctly ack'ed, and I want to do so easily (yes, we log that level in my company). Please reconsider :pray:

I'm 100% in favor of removing the messageId from the message (for all level) as it's not useful at all.
I'm not sure for other information (for example the queue name).
TBH I don't use any modern log stack for now so I'm not really aware of what are best practices in this domain.

TBH I don't use any modern log stack for now so I'm not really aware of what are best practices in this domain.

From the author of "laisse pas trainer ton log" :trollface:
How can you make such a great presentation and then not use a modern log stack :sweat_smile: ?

@greg0ire really strange way to monitor rabbitmq !

@lyrixx we're monitoring the whole app, the goal is not really to monitor RMQ, but to make RMQ-related messages a bit less noisy, so that other messages can be seen too (while still being able to see RMQ-related messages).

@greg0ire As I'm not working in a company which can afford a complete log stack, I deal with papertrail only (and it's far, far, far from perfect. ^^)
Anyway, is there ano other message to update, or is this PR ready to be merged?

It's ready, some of the 18 occurences were already fine :)

Perfect, thanks a lot. :)


help wanted: embedded-graphics driver

The goal is to have a basic "framebuffer driver" for mnemos.
I think this would work something like:

use the embedded graphics simulator, or similar sdl2/web tech to build a gui window
use embedded-graphics (and maybe embedded-text) as graphics primitives
provide some kind of interface to draw to the frame buffer, such as:

providing an X/Y start coord, and a rectangle to be painted on to the frame buffer
provide a way to provide a "full frame update" (this might just be the other option starting at (0, 0) and fully sized).

I think mostly, you'll want a "whole framebuffer", say 800x600, and you should take smaller rectangle chunks of arbitrary size, and draw them to the frame buffer. This way your "demo task" can draw something like a 320x240 chunk using embedded-graphics, and just paint that on to the large, "dumb" framebuffer.
To do this, you will likely need to do the following (short summary):

Add a new driver to the kernel that owns the frame buffer and whatever window context that needs to exist.
Define a message type for sending update commands.
Process incoming commands, update the framebuffer, redraw the framebuffer whenever updated
Provide some kind of demo that draws something, or does an animation, or takes data from a virtual port or something and draws it

Longer summary:
make a driver
misc note: The simulator is called "melpomene". You can find it in source/melpomene. You can run it with MELPOMENE_TRACE=trace cargo run. You'll see a lot of tracing events there. If you want to see a lot more, check out this comment which will show you how to run the virtual serial ports that are already working in the simulator.
Drivers in mnemos are basically just async tasks. "real drivers" should be self contained, but for the simulator, you can use whatever. You can spawn threads if you want, and we also have a tokio runtime going that provides sleep and uart stuff.
Check out the sim drivers folder for simulator specific drivers, and kernel drivers for real drivers. You'll probably want to use the Heap types to allocate your frame buffer.
Don't worry about getting any of this perfect yet.
Once you have a driver, you'll probably need to set it up in the initialization function, and spawn it into the kernel's executor. Check out [kernel_entry()](https://github.com/tosc-rs/mnemos/blob/09ef1595527a388fd01ea3bfdc6741561f4a8a04/source/melpomene/src/main.rs#L68) in melpo for how other tasks do this. You might also need to modify how much memory is given to the kernel at initialization. Go ahead and bump it to like 16MiB or whatever you need.
Define message types
mnemos has two main communication channels you'll see. One is stream based, and that's all the ones you see called bbq. I don't think you'll need those for this. The other one is basically an MPSC async queue, called KChannel. You can basically create a kchannel that contains your type (and optionally a "reply" channel producer), and define whatever message types you want. Since it'll probably be relatively "big" buffers, your message should probably also use heap types for this.
You can see an example of a message type in the serial_mux driver, and how a kchannel is used in the current main task.
You might want to have something like a FrameChunk, which holds an appropriately sized heap allocation, and implements that DrawTarget trait from e-g.
This way you could do something like:
// this makes a 320 x 240 x 2 allocation to act as a 16bpp frame chunk
let mut new_frame = FrameChunk::new(320, 240).await;
// This uses e-g methods to paint this sub-frame
Circle::new(...)
    .whatever(...)
    .eg(...)
    .methods(...)
    .draw(&mut new_frame).unwrap();
// send the sub-frame over the kchannel
driver_producer.send(Command::Draw { x: 0, y: 100, chunk: new_frame }).await.unwrap();

Process incoming commands
Again, the serial mux driver is a good example of accepting messages and doing stuff with them. Here you will do whatever your framebuffer logic stuff is.
Provide some kind of demo
Right now, userspace isn't up and running. So just define some async demo task (in melpo's main, or somewhere else), that holds the new driver's kchannel producer, and draw something every 1 second or so.

Tentatively claiming point 1. about the new driver.

Claiming message type definitions.

Thanks @Dajamante and @arunvijayshankar! Let me know if I can help or answer any questions (or write any docs). Happy to help y'all succeed!

hey @Dajamante, @jamesmunns, I was wondering, if instead of the driver owning the embedded-graphics window contexts, we could have e-g simulator run as a separate task? I was thinking the driver could spawn this task as part of a init_display function. The e-g task would own the window, and the driver could talk to it on a kchannel as if it were an actual display. This might make it easier to adapt the driver for a physical device in the future. What do you think?

Closed by #35, thanks y'all!


Extend JsonLd component to accept stringify's space property

I have quite long JSON-LD schemas, and it would be very useful if we could support passing down space property down to JSON stringify.
Something like:
export class JsonLd<T extends Thing> extends React.Component<{
  item: WithContext<T>;
  space?: string | number;
}> {
  render() {
    return (
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{
          __html: JSON.stringify(this.props.item, safeJsonLdReplacer, this.props.space)
        }}
      />
    );
  }
}

I could do a PR with this

Can you elaborate on why the default isn't appropriate? Typically we expect the output of this to be only used to be read by machines (indexers, etc) and so having it as short as possible makes sense (the default when space is not set).

It's totally appropriate to have default as it currently is, I wouldn't change that.
I'm only suggesting to allow the React component to pass down space property to stringify method.
I'm porting over existing JSON-LD declared straight in HTML to React, and having both at the same time nicely printed allows me to compare the difference easily, without having to rely on some other.

Got it. Yeah cleaner diffs sounds like a compelling reason here, I get the pain.
Writing a PR with this change sounds good!


Request:  New Google Play app icon specification

According to the Android Dev Blog
The App icon should be changed.
Could you apply this please?

@romannurik Why is this closed without any comment?

Oh, sorry you already applied it! Thank you~ :)

Yep sorry. Any icon shape should generate a square web icon.


Ammeded timing to suit new revision of ws2812c

1. Tell us something about your changes.
Ammeded timing to suit new revision of ws2812c
Should also work with WS2813 (but untested)
Included comments on the timing calculations
2. If this changes affect the .conf file. Please provide the changed section
nope
3. Reference an issue (optional)
#437
Note: For further discussions use our forum: forum.hyperion-project.org

btw there is a  new version of ws2813: https://github.com/FastLED/FastLED/issues/449
the older one is not compat with the newer one. I use the new one now with fastled 2812 driver

Oh goodie !
I think I'll write a generic SK-WS 1 wire led device that exposes all the timing as config options.
Until I do that, at least I provided detailed comments to enable quicker rework

With increase of ws2812 reset time to 300ns for 2017 produced 2812 and 2813 should have fairly same timing.
Btw did you notice the upcomming 2815 led? This is a 12v droven stripe. I hope this will become available soon, so we dont have to deal with high amps for larger lef installstions.
Another info is that 2812 is declared obsolete by worldsemi and 2813 will be the replacement

I hadn't heard either - thanks for sharing.
12v brilliant ! I hope they do 3v3 compatible signalling too.

Pictures looks promising, i hope it's not a fake and the lost power isn't crazy high (burned with resistors) :)
The 5V are really annonying.
@redPanther Slack :)

http://www.world-semi.com/solution/list-4-1.html

https://blog.adafruit.com/2017/05/03/psa-the-ws2812b-rgb-led-has-been-revised-will-require-code-tweak/

Yep - that's the reason for this PR
i wonder if they're using the same die as the 2813


Allow individual axis customization of Figures with sub-plots

Currently, the Layout struct doesn't allow customization of sub-plot axes. When one creates a Figure with multiple traces that are displayed as sub-plots, there's no way to set properties of the second and all the following axes of any type.
Here's the full list of axis types that exist in the Layout object and can't be customized in sub-plots:

[ ] XAxis
[ ] YAxis
[ ] Polar sub-plot axes:

RadialAxis
AngularAxis

[ ] Ternary sub-plot axes:

AAxis
BAxis
CAxis

The issue happens because association between axes and traces is done via string matching in JavaScript. For example, two scatter plots with customized x-axes are created in the following way:
var scatter1 = { "xaxis": "x1", "type": "scatter" ... }
var scatter2 = { "xaxis": "x2", "type": "scatter" ... }
var layout = {
  "x1": { /* x axis customization goes here */ },
  "x2": { /* x axis customization goes here */ }
}

Or two polar sub-plots to be displayed side-by-side can be constructed like this:
var barpolar1 = { "subplot": "polar1", "type": "barpolar", ... }
var barpolar2 = { "subplot": "polar2", "type": "barpolar", ... }
var layout = {
  "polar1": { /* polar axis customization goes here */ },
  "polar2": { /* polar axis customization goes here */ }
}

While it's possible to create the same figure in Swift by setting the .subPlot or .xAxis trace properties to corresponding strings (i.e. "polar1/2" or "x1/2"), it's not possible to customize the "x2", or "polar2" axes. Layout object is strictly typed and it doesn't allow addition of Layout.x1, .x2, .polar1 or .polar2 members ad-hoc. These members when encoded to JSON would be translated by Plotly.js to customization of the corresponding sub-plot axes.
In fact, setting the trace sub-plot axis correspondence via string matching as described above, is not consistent with the API Design Guidelines. Allowing it is therefore not desirable because it breaks the conventions and unwritten rules Swift developers are used to.

One idea for improvement of the Plotly.swift *Axis API would have all the *Axis types adopt reference semantics. Or in other words it would become a class. The .xAxis/.yAxis and .subPlot properties of different traces would become references to a class instance that could be shared as needed and re-used in other traces to obtain desired sub-plot axis association.
There are two possible ways how this could behave in code:
Option A: Layout.create*SubPlot Factories for all *Axis Types
var scatter1 = Scatter(...)
var scatter2 = Scatter(...)

var layout = Layout(...)
scatter1.xAxis = layout.createXAxis( /* x1 axis customization goes here */ )
scatter2.xAxis = layout.createXAxis( /* x2 axis customization goes here */ )

var barPolar1 = BarPolar(...)
var barPolar2 = BarPolar(...)

var layout = Layout(...)
barPolar1.subPlot = layout.createPolarSubplot( /* polar axis customization goes here */ )
barPolar1.subPlot = layout.createPolarSubplot( /* polar axis customization goes here */ )

Option B: Layout Parameter for All *Axis Constructors
var scatter1 = Scatter(...)
var scatter2 = Scatter(...)

var layout = Layout(...)
scatter1.xAxis = .init(layout: layout, /* x1 axis customization goes here */ )
//             = Layout.XAxis(layout: layout, /* x1 axis customization goes here */ )
scatter2.xAxis = .init(layout: layout, /* x2 axis customization goes here */ )
//             = Layout.XAxis(layout: layout, /* x2 axis customization goes here */ )

var barPolar1 = BarPolar(...)
var barPolar2 = BarPolar(...)

var layout = Layout(...)
barPolar1.subPlot = .init(layout: layout, /* polar subplot customization goes here */ )
//                = Layout.Polar(layout: layout, /* polar subplot customization goes here */ )
barPolar1.subPlot = .init(layout: layout, /* polar subplot customization goes here */ )
//                = Layout.Polar(layout: layout, /* polar subplot customization goes here */ )

Both proposals imply that all properties of Layout struct that currently store the *Axis type would have to privately store a and manage a list of references [*Axis] instead.

Done!


Split zabbix_url and Apache vhost ServerName

Variable zabbix_url clashes with zabbix-agent where it is contains real URL instead of server name.
In this change we are extract host name from zabbix_url if it in URL format or take it as is. Default behavior not changed.

Thank you. Maybe it is my lack of regex knowledge, but is this only working for https and not http?

You can check
ansible localhost -m debug -a "msg={{ 'mon.somesite.com' | regex_findall('(?:https?\\://)?([\\w\\.]+)') | first }}"
ansible localhost -m debug -a "msg={{ 'http://<IP_ADDRESS>/zabbix' | regex_findall('(?:https?\\://)?([\\w\\.]+)') | first }}"
ansible localhost -m debug -a "msg={{ 'https://<IP_ADDRESS>/zabbix' | regex_findall('(?:https?\\://)?([\\w\\.]+)') | first }}"
ansible localhost -m debug -a "msg={{ 'http://dev.somesite.com:2356/zabbix' | regex_findall('(?:https?\\://)?([\\w\\.]+)') | first }}"
ansible localhost -m debug -a "msg={{ 'https://dev.somesite.com:2356/zabbix' | regex_findall('(?:https?\\://)?([\\w\\.]+)') | first }}"

Thanks! 👍


fix: remove coords check in usePointerDownOutside

It seems that my last change in #695 did not fix the problem completely. After upgrading to the latest version, one of my Select components now works, but the other does not. And some of the dropdowns are not working as expected.
if (event.clientX > target.clientWidth || event.clientY > target.clientHeight)
	return

As I undrestand it, we need those lines for this particular example of dialog: https://www.shadcn-vue.com/docs/components/dialog.html#scroll-overlay. To handle the case when we click on the scrollbar and the dialog closes. This is valid issue, but I think this is the wrong way to fix it. We dont need to modify the composable, because it will affect all other components and break a lot of things. We can modify the @pointer-down-outside handler just for this case with scroll overlay.
Here is how we can fix it for shadcn-vue:
https://github.com/radix-vue/shadcn-vue/blob/dev/apps/www/src/lib/registry/default/ui/dialog/DialogScrollContent.vue
<template>
  <DialogPortal>
    <DialogOverlay
      class="fixed inset-0 z-50 grid place-items-center overflow-y-auto bg-black/80  data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
    >
      <DialogContent
        :class="
          cn(
            'relative z-50 grid w-full max-w-lg my-8 gap-4 border border-border bg-background p-6 shadow-lg duration-200 sm:rounded-lg md:w-full',
            props.class,
          )
        "
        v-bind="forwarded"
        @pointer-down-outside="(event) => {
          const originalEvent = event.detail.originalEvent;
          const target = originalEvent.target as HTMLElement;
          if (originalEvent.offsetX > target.clientWidth || originalEvent.offsetY > target.clientHeight) {
            event.preventDefault();
          }
        }"
      >
        <slot />

        <DialogClose
          class="absolute top-3 right-3 p-0.5 transition-colors rounded-md hover:bg-secondary"
        >
          <X class="w-4 h-4" />
          Close
        </DialogClose>
      </DialogContent>
    </DialogOverlay>
  </DialogPortal>
</template>

@zernonia I agree that this needs to be fixed, but I don't currently have a universal solution for this. The PR you linked to does the same thing we do, but with RTL direction support. And it still won't work for all components. It's a very specific use case check, I'd rather move it to where only we need it. If at some point we have a perfect solution we can just add it, but right now I think we need to remove those lines because they break other components.

https://github.com/radix-vue/radix-vue/assets/51422045/f3100cf1-0eb3-49df-a006-668a2c2c3e70

Agree @MellKam ! We will revert this feature back, and I will add a docs section adding your snippet above 👍🏻


Having issues in starting Firefox browser with Selenoid

@vania-pooh I am trying to run my test on selenoid version 1.10.12 with firefox version 116 I am getting below error.
Caused by: net.thucydides.core.webdriver.DriverConfigurationError: Could not instantiate new WebDriver instance of type class org.openqa.selenium.remote.RemoteWebDriver (Unable to establish websocket connection to ....
When I am trying to run with Firefox browser version 115.0 it is working fine. But facing issue with browser version 116 and beyond.
below is my browser.json file
{
"chrome": {
  "default": "latest",
  "versions": {
      "120.0": {
        "image": "selenoid/chrome:120.0",
        "port": "4444",
        "path": "/",
        "mem" : "2G",
        "volumes": ["/data/dev/devtools/selenoid/data:/data:rw"],
        "tmpfs": {
            "/tmp": "size=1028m"
        }
      }
    }
  },

"firefox": {
  "default": "latest",
  "versions": {
      "116.0": {
        "image": "selenoid/firefox:116.0",
        "port": "4444",
        "path": "/wd/hub",
        "mem" : "2G",
        "volumes": ["/data/dev/devtools/selenoid/data:/data:rw"],
        "tmpfs": {
            "/tmp": "size=1028m"
        }
      }
    }
  },

"MicrosoftEdge": {
  "default": "latest",
  "versions": {
      "120.0": {
        "image": "browsers/edge:120.0",
        "port": "4444",
        "path": "/",
        "mem" : "2G",
        "volumes": ["/data/dev/devtools/selenoid/data:/data:rw"],
        "tmpfs": {
            "/tmp": "size=1028m"
        }
      }
    }
  }

}

@asemkazi what is your Selenium client version?

@vania-pooh selenium 4.1.4

@vania-pooh any updates?


eCarePlanner 3.1.1 - logging calls being sent to wrong domain

These are the calls that eCarePlanner 3.1.1 is making to perform logging requests:

As you can see, it's hitting provder-mccecare-dev.ohsu.edu, which is incorrect.  It should be hitting log-mccecare-dev.ohsu.edu, as we configure it in the docker create command that creates the container:

Unable to duplicate
the following environment
services:
ecareplanner:
image: chroniccare/ecareplanner:latest
container_name: ecareplanner${MELD_SANDBOX_NAME}
domainname: ecareplanner${MELD_SANDBOX_NAME}
network_mode: default
environment:
- CLIENT_ID=${MELD_SANDBOX_CLIENT_ID}
- LOG_END_POINT_URI=someurlhere
ports:
- "80:80"
restart: always
results in [Error] Failed to load resource: the server responded with a status of 405 (Not Allowed) (do-log, line 0)
http://localhost/someurlhere/log/do-log

@mattStorer please see the comment above from Sean.

upon attempting to recreate this issue, eCarePlanner doesn't appear to be attempting to log anything at all now, which is weird.
here's what we use to create the container:
docker create --name=ecareplanner-1 -p <IP_ADDRESS>:50001:80 --restart always --env CLIENT_ID="7666b9ec-8caa-43bd-8231-2eea4f5d281d" --env LOG_ENABLED="true" --env LOG_ENDPOINT_URI="https://log-mccecare-dev.ohsu.edu" --env LOG_API_KEY="f9ba53e8-ea8c-437c-a813-e750d0166c63" chroniccare/ecareplanner:latest

see attached for a zipped copy of the network tab / HAR file export for network details:
eCarePlanner 3.1.1 - POC - 2024-03-27.har.zip

@swmuir to re-test

I see this issue is tagged "not-a-bug."  I'm curious how that squares with the observed behavior.  Are we not configuring the log-service endpoint correctly?  @swmuir

ah okay yes I see that the environment variable was changed from LOG_ENDPOINT_URI to LOG_END_POINT_URI.  not sure why that _ was added in there but whatever at least now I know why it wasn't working.  updated environment variable and tested, verified it's now calling to the right place.

still not working due to failing OPTIONS calls which may be something on our end, will investigate


Adds network cli interface.

Adds Network CLI functionality to Single Node
Functional Changes include:
]Adding a network mode to the cli. Run quickstep in network mode (defaults to local)
quickstep_cli_shell --mode=network
Now quickstep boots a server, you can interact using the client executable...
quickstep_client < my_query.sql
Code Changes include:

Adds a generic IO interface

Hides Linereader from CLI behind class LocalIO
New NetworkIO also hidden here

Adds tests for NetworkIO
Adds simple Client executable
Cmake flag to disable (ENABLE_NETWORK_CLI=false)

Hi @cramja
Considering that this is a fairly big feature, can you please create a JIRA ticket and link this PR with it?

@hbdeshmukh I created a ticket QUICKSTEP-87; maybe you can show me how to link to this PR later.

Thanks @hbdeshmukh , fixed validate_cmakelists issue.

@zuyu Thank you for review. Regarding the question about mutexes and cond_var in the NetworkCliServiceImpl, we disallow multiple gRPC threads from submitting requests at the same time.
As for the suggestion, I think it's okay to split those up. I didn't do this in the draft because it creates very small test files.

I should also mention that @hbdeshmukh and I had a discussion yesterday about refactoring the CLI main method. I was unhappy with how cluttered seeming it has become, and this PR only makes it slightly more cluttered. I came up with a solution which I have been working in a WIP branch. It uses RIIA to close down any IO-related state (eg network connections) by creating an IOHandle for every cli user interaction. Because I think this change is a big improvement over, and complimentary to the change which is present here, I will submit it as a commit on top of this commit in the PR.

@zuyu Thank you for review. I addressed the minor stuff and will look into Async when I have more time this coming week.

I mean, if this class is always a base class, move the constructor in
protected session.
On Mon, Apr 24, 2017 at 12:58 PM Marc S<EMAIL_ADDRESS>wrote:

@cramja commented on this pull request.
In cli/IOInterface.hpp
https://github.com/apache/incubator-quickstep/pull/232#discussion_r113041261
:

specific language governing permissions and limitations

under the License.

**/

+#ifndef QUICKSTEP_CLI_IO_INTERFACE_HPP_
+#define QUICKSTEP_CLI_IO_INTERFACE_HPP_
+
+#include
+
+/**

Virtual base defines a generic, file-based interface around IO.

*/
+class IOInterface {
public:
IOInterface() {}

I removed the constructor but ran into a compiler error:
/Users/cramja/workspace/quickstep/incubator-quickstep/cli/NetworkIO.cpp:50:12: error: constructor for 'quickstep::NetworkIO' must explicitly initialize the base class 'quickstep::IOInterface' which does not have a default constructor
NetworkIO::NetworkIO() {
^
/Users/cramja/workspace/quickstep/incubator-quickstep/cli/IOInterface.hpp:62:7: note: 'quickstep::IOInterface' declared here
class IOInterface {
^
On doing the suggestion in the output, that too gave a compiler error.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-quickstep/pull/232#discussion_r113041261,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACJDxGtWVm0ZhTjvMb9w0_2D7-hWuOdeks5rzP7OgaJpZM4M_q9a
.

After @hbdeshmukh and I's code review, we created:

QUICKSTEP-90
QUICKSTEP-91
in response to some of the issues we found. @zuyu 90 will address the async upgrade.

Additionally, we changed the locks in NetworkIO.hpp to be quickstep locks, not std locks.

We need to sync up with the master branch before merge.


hrefs don't navigate

I've tried adding an href to HtmlView output. The link renders, but on clicking it, the browser doesn't navigate. Is there some global click handler which is preventing it?
Example:
#gorilla_repl.html.HtmlView{:content ("www.google.com")}

On investigation, it looks like my suspicion is confirmed: https://github.com/JonyEpsilon/gorilla-repl/blob/develop/resources/gorilla-repl-client/js/renderer.js#L20
The event listener there is returning false. Maybe a solution would be to return false if alt is pressed, but true if otherwise, to allow normal href behavior to occur.
As a workaround, I added an ugly javascript onclick handler to get the navigation to happen:
#gorilla_repl.html.HtmlView{:content ("google")}

This was done to stop the case where you click on a link and then lose your unsaved work in Gorilla, which is very annoying!
Having a modifier that allows you to follow the link (a bit like in MS Word) is a nice idea.

Keeping unsaved work is definitely a good idea. In my snippet above I solved that by opening the link in a new browser window.


Only show sensors and areas that are actually enabled

_load_authorised_entities will only return enabled entities. We already had this logic on cf01, so apply the same logic to cf03

Is this the sort of thing you'd prefer as a MR, or just to be committed straight in?

Yeah, anything that's a localized fix like this, please feel free to submit it directly.


Enhanced Dark Mode

Adjusted background and text color in dark mode according to issue #3472.
The new background color #161c23 is created under the instruction of Material Design 2 Guidelines, by overlaying the primary color #1d93ab with #121212 at a low capacity.
The new text color is pure white #ffffff according to the recommendation of the guidelines.
The new contrast ratio of background and text is now 17.15:1.
Also tweaked the hover-color a bit to make it look more coordinated.
Preview of change

Thanks for the PR and the preview of the updated website. I agree that the existing text color contrast could indeed be improved. I've just had a chance to check out the newly deployed site and noticed that the pure white text in dark mode indeed has a very high contrast, but it also appears to be slightly harsh on the eyes. This effect might be even more pronounced on screens with high brightness, especially during nighttime use. Moving forward, we will experiment with a few different color options and discuss to finalize a color scheme that balances readability and visual comfort.


Add a Right to Left option

Add an option for RTL cases
Status: Opened for visibility
Reviewers: @scalvert @donnielrt @ericmuyser @tedtate @kpeatt
Linked PRs: https://github.com/mobify/scooch/pull/26
Changes

Added a RTL flag option: rightToLeft (defaults to false) for sites that use a right-to-left layout (e.g. eXtra Stores)
When enabled, this option reverses how Scooch determines next and previous slide movements on dragging interactions
Currently on eXtra Stores' build, grunt-css-flip handles the RTL inverting of the Scooch controls. We could possibly extend rightToLeft flag's functionality to perform these control changes Scooch-side.

How to test-drive this PR

Pull down this change
Init a new Scooch with rightToLeft option set to true: $scooch.scooch({rightToLeft: true});
Check whether dragging in a left-to-right manner advances Scooch, and returns to previous slide on a right-to-left dragging interaction

Note

These changes are stacked on top of @ericmuyser 's fix for logic to auto-hide arrows

Code looks good.

bump?

@ry5n do you need this? One thing we're doing is trying not to add anything to scooch before it's rewritten. If you need it sooner we can look at this.

@scalvert We don’t need it for a project; we have something in place for EX already.

Hey, we’re looking to prune older unattended PRs. If this PR is still relevant and you would like to see it merged in, please reopen the PR and we’ll add it to our backlog! Thanks!


chore(env): [#534] Switch keycloak token URL (DEV, INT)

Migration to new "old" keyloak url Token URL: https://centralidp-v2.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token

only vault needs to be adapted, therefore closed


Function app custom domains limit

According to service limits there is a limit on custom domain per app of 500
For app services I understand that this limit is hard and cannot be increased upon request
Does this hard limit apply for function apps as well?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 06436739-8586-23b1-6b69-1960e93c26be
Version Independent ID: 8f7abfae-cf6d-56cb-1d20-f02041a6f6d9
Content: Azure Functions scale and hosting
Content Source: articles/azure-functions/functions-scale.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@assaf-grth
Thanks for your feedback! We will investigate and update as appropriate.

@assaf-grth Yes. That is correct. The same limit holds for function apps as well.

Hi, @assaf-grth - I hope the confirmation above answers your question. We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Move to yaml v3

Tests are failing.

Hello from the bug-scrub!  Could you explain why we want v3, please?
We took a look at the upstream package but, other than being newer and some changes with booleans, we couldn't see any particular recommendation to use one or the other.

The only value of v3 is v2 EOL and perhaps less focus to scan v2 for vuln.
We hit similar in other places https://github.com/prometheus/client_golang/issues/1579

Citation for the EOL statement?

Good point, only some mention that " Our BlackDuck scan shows gopkg.in/yaml.v2 version is EOLed". Can't find official EOL statement.


Stop view from reloading on orientation change

Description
The view reloads which causes the webview to reload when the screen orientation changes. This fixes that

@CedrickFlocon I think this is a good compromise for now. It works and delivers good value to the users. It can be improved in the future.

This should not be that much complicate ?

For what I understood in the Android Docs, webview's saveState no longer saves the display data:
from https://developer.android.com/reference/android/webkit/WebView.html#saveState(android.os.Bundle)

Please note that this method no longer stores the display data for this WebView. The previous behavior could potentially leak files if restoreState(Bundle) was never called.

also: https://stackoverflow.com/a/2700865/3984316

Not sure if it's a good idea but we can retain the state with a Fragment

@CedrickFlocon Just in case, handling config changes through onConfigurationChanged still needs this Manifest patch.
Adding "android:configChanges" explicitly says you do that, indeed.
No actually overriding onConfigurationChanged in the app means webview is handling it.

So what is the status of this? I have been waiting for this fix since the launch of the app..

Going to close this as this PR has gone stale.


[bug] [tauri v2][iOS] Error sending request for url (http://<IP_ADDRESS>:1430). Can't start app on iOS Simulator

Describe the bug
I'm no longer able to start the app on the iOS simulator after deploying it to a real device.  Starting the app shows:  Error sending request for url (http://<IP_ADDRESS>:1430). I tried to clean the build directory in xcode but no luck.  Also, tried to specify the host and port of the dev server and I get the same error. The app still deploys and starts fine on a real device.
npm run tauri ios dev -- --host <IP_ADDRESS> --port 1430
Deploying app to device...
An error was encountered processing the command (domain=FBSOpenApplicationServiceErrorDomain, code=4):
Simulator device failed to launch app.relativemotion.
Underlying error (domain=FBSOpenApplicationServiceErrorDomain, code=4):
	The request to open "app.relativemotion" failed.
    Error Failed to deploy app to simulator: command ["xcrun", "simctl", "launch", "50603FDD-6E20-483B-ACDA-6279C832CE04", "app.relativemotion"] exited with code 4

tauri.conf.json

  "build": {
    "beforeDevCommand": {
      "script": "npm run dev",
      "wait": true
    },
    "beforeBuildCommand": {
      "script": "npm run build",
      "wait": true
    },
    "beforeBundleCommand": "",
    "frontendDist": "../src"
  },

Reproduction
No response
Expected behavior
Able to start the app on the iOS Simulator.
Full tauri info output
> tauri info

[✔] Environment
    - OS: Mac OS 14.6.1 X64
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.80.1 (3f5fd8dd4 2024-08-06)
    ✔ cargo: 1.80.1 (376290515 2024-07-16)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-aarch64-apple-darwin (default)
    - node: 20.11.0
    - npm: 10.2.4

[-] Packages
    - tauri [RUST]: 2.0.0-rc.2
    - tauri-build [RUST]: 2.0.0-rc.2
    - wry [RUST]: 0.41.0
    - tao [RUST]: 0.28.1
    - @tauri-apps/api [NPM]: 2.0.0-rc.0
    - @tauri-apps/cli [NPM]: 2.0.0-rc.3

[-] App
    - build-type: bundle
    - CSP: child-src 'self'; upgrade-insecure-requests ; default-src 'self'; script-src 'self'; connect-src 'self' ws: ipc:  http://ipc.localhost server.relativemotion.app dev.server.relativemotion.app sandbox.relativemotion.app; style-src 'self'; img-src https://* tauri: data:; style-src-elem 'self'; object-src 'none'; font-src 'self'
    - frontendDist: ../src
    - bundler: Webpack

[-] iOS
    - Developer Teams: <Removed>

Stack trace
No response
Additional context
No response

A little bit more context. For some reason as described above, the command xcrun simctl launch 4D80B92E-787A-4EB4-BDB0-A088F9AD59DA app.relativemotion fails which causes npm run tauri ios dev to exit but while that command runs I can see that built-in dev server is started and listening on the correct host and port. The previous app built on the simulator now works at least until ios dev fails which closes the built-in dev server.
Not sure if this is a tauri issue or some weird thing on xcode/ios simulator. I've tried different suggestions but none worked so far.

Close and reopen simulator.
Reset Simulator Device.
Erase simulator contents.
Reboot macos

Clearing gen/apple and re-running npm run tauri ios init fixes the issue. Maybe related to #10637 ?


Allow setting x,y,z location to switches

I would like to set the location (copy from mpg-monitor) the location of switches. This can then be used in code to react to switch events and drive lightshows based on switch location.
Currently I get "Your config contains a value for the setting "switches:s_start:x", but this is not a valid setting name."
I will raise a PR that will allow this setting in switches config.

Created https://github.com/missionpinball/mpf/pull/1113


block missing

i send 9k mrai but he have not get.
hash no       CD50395C93ED4BA159AE37B8806270F81CD2AE75CC48CFCD3A0FDF563447427F

please, suggestion.

Your block count is correct? Advanced button -> Block count
Compare to this number: https://raiblocks.net/#/explorer
If not, try to check Advanced -> Peers -> Refresh and check how many peers you are connected to. Paste ::ffff:<IP_ADDRESS>:7075 and Initiate Bootstrap.
Restart and unlock your wallet.

thanks, thats going.

hi
On Mon, May 2, 2016 at 11:47 AM, SergiySW<EMAIL_ADDRESS>wrote:

Your block count is correct? Advanced button -> Block count
Compare to this number: https://raiblocks.net/#/explorer
If not, try to check Advanced -> Peers -> Refresh and check how many peers
you are connected to. Paste ::ffff:<IP_ADDRESS>:7075 and Initiate
Bootstrap.
Restart and unlock your wallet.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/clemahieu/raiblocks/issues/13#issuecomment-216108982


Bugfix: Git Blame by Range - Try the approach with GitHandler

Description
This is an attempt to run git blame for a range of lines, similar to how our VS Code extension does. It's a draft PR because it doesn't work yet, despite trying various approaches
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Chore: cleanup/renaming, etc
[ ] RFC

Notes
Look at the issue I opened describing the various approaches I tried to get more context.
Acceptance

[x] I have read the Contributing guidelines
[x] I have read the Code of Conduct

UPDATE: I updated this PR with a new approach that allows us to execute the git blame for a range. However it throws an error java.io.EOFException: SSL peer shut down incorrectly after running, which is why I don't want to upgrade the draft PR state for this PR.

Close try


The edit and delete address text is overlapping, on the customer address page on the shop in the Persian language.

Terms

[X] Before you openning this issue, i have checked if the issue has already been reported.

Bagisto Version(s) affected
Master
Issue Description
The edit and delete address text is overlapping, on the customer address page on the shop in the Persian language.
Preconditions
1. The language should be Persian
2. The customer should be on the address page.
Steps to reproduce
1. Go to 'shop' and log in as a customer.
2. Click on 'address' inside the profile section
3. See error
Expected Result
There should be a proper margin between edit or delete text if the customer is trying to edit or delete the address.
Actual Result
The edit and delete address text is overlapping, on the customer address page on the shop in the Persian language.
Screenshots

Additional context
No response

@akathuria289
Please look into it.

@Sanjaybhattwebkul  Persian language follow RTL direction, so when creating local admin should select RTL  direction then this issue will not appear


Paper elements, Material Design guidelines, and out-of-the-box breathing space for elements

I've recently learned of Polymer 1.0 and decided to give it a try -- it looks great.
I am, however, a bit frustrated by the apparent need to use CSS even as I try to use built-in elements only to build a basic look-and-feel for my application.
For example, inside a paper-drawer-panel, I have a paper-header-panel (as drawer), configured with a paper-toolbar on top. The toolbar introduces its own padding by virtue of its design, whereas the content section does not (seeing as it's just a div). I then want to put text with some personality in there, and standard text doesn't look good at all. But, I found paper-item reasonably compelling. So I put paper-items both in the toolbar, as a title, and in the content, where I put a bunch of them. The trouble is that paper-item comes with its own padding, which makes it look good in the body of my panel and misaligned, due to additional padding, in the header.
The "main" part of my paper-drawer-panel is another paper-header-panel. In that one, I also have an icon to the left of another paper-item. I'm also experimenting with an icon to the right of it, just for kicks. Here, the paper-item looks exaggeratedly far away from either the icon to its left, and somewhat far away from the icon to its right.
The point I'm trying to convey is that I'm trying to put together these built-in Material Design components. Material Design comes not only with a set of components, but also with margin and padding guidelines.
And this leads to my question. Is there a way to tap into that Material Design standard without having to customize the elements with low level CSS, like adding padding: 24px here, removing padding there? I feel like the simplicity breaks down fast and it reminds me of low level days of yonder.
Preferably, things would work out-of-the-box by resorting to built-in elements.
For example, is there a container element with the same padding as a paper-toolbar? I could see myself standardizing on that as body in my paper-header-panels.
An alternative standard solution that may be less invasive to a developer: paper-header-panel should take away the padding responsibilities from the paper-toolbar (by overriding the CSS rules of the child paper-toolbar) and controls its own padding, which should then be consistent between header and content. That padding may be made configurable, possibly with coarse-grained configuration options consistent with MD guidelines (like small paddings, medium paddings, etc).
Here is my code, in case it matters. As you can see, I'm still playing with the layouts and resisting diving into CSS rules, because I feel an aversion towards customizing at that low level. Some of the content (like a few paper-items) is taken from the Polymer element docs.
<paper-drawer-panel>
  <paper-header-panel drawer>
    <paper-toolbar class="top-toolbar">
      <paper-item>Options</paper-item>
    </paper-toolbar>

      <paper-item>
        <paper-item-body two-line>

Show your status

You are visible to everyone

        </paper-item-body>
        <paper-checkbox></paper-checkbox>
        <iron-icon icon="warning" class="small"></iron-icon>
      </paper-item>
      <paper-item role="menuitemcheckbox">
        <paper-item-body>

Show your status

        </paper-item-body>
        <paper-checkbox></paper-checkbox>
      </paper-item>

  </paper-header-panel>
  <paper-header-panel main>
    <paper-toolbar class="top-toolbar">
      <paper-item>Hola</paper-item>
    </paper-toolbar>
    <paper-card heading="Card Title">

Some content

        <paper-button>Some action</paper-button>

    </paper-card>
  </paper-header-panel>
</paper-drawer-panel>

This issue was moved to PolymerElements/paper-elements#36


scroll does not work

Following the documentation I've configured
inoremap       compe#scroll({ 'delta': +4 })
inoremap       compe#scroll({ 'delta': -4 })
I would expect, that allows to scroll in the popup window. Are there any dependencies?
checkhealth:
health#mkdp#check

INFO: Platform: linux
INFO: Nvim Version: NVIM v0.5.0-dev+1177-g095f5da79
linux
INFO: Pre build version: 0.0.9
OK: Using pre build

health#floaterm#check
common

INFO: Platform: linux
INFO: Nvim: NVIM v0.5.0-dev+1177-g095f5da79
INFO: Plugin: 2d9107b

terminal

OK: Terminal emulator is available

floating

OK: Floating window is available

health#nvim_treesitter#check
Installation

ERROR: tree-sitter executable not found
OK: git executable found.
OK: cc executable found.

Parser/Features H L F I

vhdl           . ✓ . .
c              ✓ ✓ ✓ ✓
bash           ✓ ✓ ✓ .
python         ✓ ✓ ✓ ✓
query          ✓ ✓ ✓ ✓

Legend: H[ighlight], L[ocals], F[olds], I[ndents]
+) multiple parsers found, only one will be used
x) errors found in the query, try to run :TSUpdate {lang}
health#lspconfig#check
Checking language server protocol configuration

INFO: vhdl_tool: configuration checked.
INFO: pyls: configuration checked.
INFO: clangd: configuration checked.
INFO: vimls: configuration checked.

health#nvim#check
Configuration

OK: no issues found

Performance

OK: Build type: RelWithDebInfo

Remote Plugins

OK: Up to date

terminal

INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~

health#provider#check
Clipboard (optional)

OK: Clipboard tool found: xclip

Python 2 provider (optional)

WARNING: No Python executable found that can import neovim. Using the first available executable for diagnostics.
ERROR: Python provider error:

ADVICE:

provider/pythonx: Could not load Python 2:
/usr/bin/python2 does not have the "neovim" module. :help |provider-python|
/usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
python2.6 not found in search path or not executable.
python not found in search path or not executable.

INFO: Executable: Not found

Python 3 provider (optional)

INFO: g:python3_host_prog is not set.  Searching for python3 in the environment.
INFO: Multiple python3 executables found.  Set g:python3_host_prog to avoid surprises.
INFO: Executable: /usr/bin/python3
INFO: Other python executable: /bin/python3
INFO: Python version: 3.8.5
INFO: pynvim version: 0.4.3
OK: Latest pynvim is installed.

Python virtualenv

OK: no $VIRTUAL_ENV

Ruby provider (optional)

WARNING: ruby and gem must be in $PATH.

ADVICE:

Install Ruby and verify that ruby and gem commands work.

Node.js provider (optional)

INFO: Node.js: v10.19.0
INFO: Nvim node.js host: /usr/local/lib/node_modules/neovim/bin/cli.js
OK: Latest "neovim" npm/yarn package is installed: 4.9.0

Perl provider (optional)

ERROR: perl provider error:

ADVICE:

"Neovim::Ext" cpan module is not installed

@dstadelm, the mapping scrolls the documentation window that opens to the right of the completion popup. It appears whenever the server provides some info about the currently selected completion item.

Please minimal reproducible vimrc.
https://github.com/hrsh7th/nvim-compe/blob/master/misc/minimal.vim

Sorry, my bad. I was so susceptible to the idea that I could scroll the completion selection that I did not understand that this will scroll the documentation window. Maybe as a feature though one could think about a 'fast' scroll method for the selection window :-)

Thank you for your clarification.
If you want to scroll popupmenu speedy, you can use following.

  function! s:s(delta) abort
    if pumvisible()
      let l:i = complete_info(['selected']).selected
      call timer_start(0, { -> nvim_select_popupmenu_item(l:i + a:delta, v:true, v:false, {}) })
    endif
    return "\<Ignore>"
  endfunction
  inoremap <silent><expr><C-j>     <SID>s(+4)
  inoremap <silent><expr><C-k>     <SID>s(-4)

@hrsh7th Could we reopen this? I was hoping for that issue to actually be the same as mine.
map("i", "<C-f>", "compe#scroll({'delta': +4})", {silent = true, expr = true})
map("i", "<C-d>", "compe#scroll({'delta': -4])", {silent = true, expr = true})

pressing one of the two mappings with documentation window shown next to pumenu I get:
Error detected while processing function <lambda>15[1]..63:
line    5:
E745: Using a List as a Number

Yes, sure. How do I do that 😅

Thanks @hrsh7th for reopening it.

I can't repro with this minimal config.
if has('vim_starting')
  set encoding=utf-8
endif
scriptencoding utf-8

if &compatible
  set nocompatible
endif

let s:plug_dir = expand('/tmp/plugged/vim-plug')
if !isdirectory(s:plug_dir)
  execute printf('!curl -fLo %s/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim', s:plug_dir)
end

execute 'set runtimepath+=' . s:plug_dir
call plug#begin(s:plug_dir)
Plug 'hrsh7th/nvim-compe'
Plug 'neovim/nvim-lspconfig'
call plug#end()
PlugInstall | quit

set completeopt=menuone,noselect

let g:compe = {}
let g:compe.enabled = v:true
let g:compe.autocomplete = v:true
let g:compe.debug = v:true
let g:compe.min_length = 1
let g:compe.preselect = 'enable'
let g:compe.throttle_time = 80
let g:compe.source_timeout = 200
let g:compe.incomplete_delay = 400
let g:compe.max_abbr_width = 100
let g:compe.max_kind_width = 100
let g:compe.max_menu_width = 100
let g:compe.documentation = v:true

let g:compe.source = {}
let g:compe.source.path = v:true
let g:compe.source.buffer = v:true
let g:compe.source.calc = v:true
let g:compe.source.vsnip = v:true
let g:compe.source.nvim_lsp = v:true
let g:compe.source.nvim_lua = v:true
let g:compe.source.spell = v:true
let g:compe.source.tags = v:true
let g:compe.source.snippets_nvim = v:true
let g:compe.source.treesitter = v:true
let g:compe.source.omni = v:true

inoremap <silent><expr><C-Space> compe#complete()
inoremap <silent><expr><C-e>     compe#close('<C-e>')
inoremap <silent><expr><CR>      compe#confirm('<CR>')
inoremap <silent><expr><C-f>     compe#scroll({ 'delta': +4 })
inoremap <silent><expr><C-d>     compe#scroll({ 'delta': -4 })

lua <<EOF
require'lspconfig'.vimls.setup {}
EOF

It might be something to do with the fact that I set my mappings with lua.

@cloggier Your snippet of code has mistakes.
map("i", "<C-f>", "compe#scroll({ 'delta': +4 })", {silent = true, expr = true})
map("i", "<C-d>", "compe#scroll({ 'delta': -4 })", {silent = true, expr = true})

The following minimal setting (with Lua keymap) is worked fine.
if has('vim_starting')
  set encoding=utf-8
endif
scriptencoding utf-8

if &compatible
  set nocompatible
endif

let s:plug_dir = expand('/tmp/plugged/vim-plug')
if !isdirectory(s:plug_dir)
  execute printf('!curl -fLo %s/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim', s:plug_dir)
end

execute 'set runtimepath+=' . s:plug_dir
call plug#begin(s:plug_dir)
Plug 'hrsh7th/nvim-compe'
Plug 'neovim/nvim-lspconfig'
call plug#end()
PlugInstall | quit

set completeopt=menuone,noselect

let g:compe = {}
let g:compe.enabled = v:true
let g:compe.autocomplete = v:true
let g:compe.debug = v:true
let g:compe.min_length = 1
let g:compe.preselect = 'enable'
let g:compe.throttle_time = 80
let g:compe.source_timeout = 200
let g:compe.incomplete_delay = 400
let g:compe.max_abbr_width = 100
let g:compe.max_kind_width = 100
let g:compe.max_menu_width = 100
let g:compe.documentation = v:true

let g:compe.source = {}
let g:compe.source.path = v:true
let g:compe.source.buffer = v:true
let g:compe.source.calc = v:true
let g:compe.source.vsnip = v:true
let g:compe.source.nvim_lsp = v:true
let g:compe.source.nvim_lua = v:true
let g:compe.source.spell = v:true
let g:compe.source.tags = v:true
let g:compe.source.snippets_nvim = v:true
let g:compe.source.treesitter = v:true
let g:compe.source.omni = v:true

inoremap <silent><expr><C-Space> compe#complete()
inoremap <silent><expr><C-e>     compe#close('<C-e>')
inoremap <silent><expr><CR>      compe#confirm('<CR>')

lua <<EOF
require'lspconfig'.vimls.setup {}

vim.api.nvim_set_keymap("i", "<C-f>", "compe#scroll({ 'delta': +4 })", { silent = true, expr = true })
vim.api.nvim_set_keymap("i", "<C-d>", "compe#scroll({ 'delta': -4 })", { silent = true, expr = true })
EOF

Aha! Seems like it must be without noremap. Thanks @hrsh7th! Works now. :)

No. It's worked fine.
vim.api.nvim_set_keymap("i", "<C-f>", "compe#scroll({ 'delta': +4 })", { silent = true, expr = true, noremap = true })
vim.api.nvim_set_keymap("i", "<C-d>", "compe#scroll({ 'delta': -4 })", { silent = true, expr = true, noremap = true })

Ah, I see where I made a mistake. Thanks for pointing it out!

Thank you for confirmation.
@dstadelm Could you re-check it?

I have same problem.
Resolved by set mouse=