ThinkingSphinx::ConnectionError with binlog files not being cleaned up

I'm having a peculiar issue which is preventing my tests from passing.  When I run my specs, I consistently get an error ThinkingSphinx::ConnectionError which is similar to https://github.com/pat/thinking-sphinx/issues/813 but I think the culprit is different in this case.
Here's how I know to reproduce it, I start by running a successful test:
production@vagrant:/opt/rails/production/current$ bundle exec rspec spec/controllers/contributors_controller_spec.rb
** [Raven] Raven 0.13.3 ready to catch errors
...........................

Finished in 8.14 seconds (files took 19.79 seconds to load)
27 examples, 0 failures

Then I run a normal ts:rebuild for my development environment, to do dev work:
production@vagrant:/opt/rails/production/current$ bundle exec rake ts:rebuild
** [Raven] Raven 0.13.3 ready to catch errors
Stopped searchd daemon (pid: 3548).

Then upon running the test again, it fails
production@vagrant:/opt/rails/production/current$ bundle exec rspec spec/controllers/contributors_controller_spec.rb
** [Raven] Raven 0.13.3 ready to catch errors
Failed to start searchd daemon. Check /opt/rails/production/current/log/test.searchd.log.
..................F........

Failures:

  1) ContributorsController when the user is authenticated GET autocomplete responds with a 200 status code
     Failure/Error: get :autocomplete, :q => "John"
     ThinkingSphinx::ConnectionError:
       Error connecting to Sphinx via the MySQL protocol. Error connecting to Sphinx via the MySQL protocol. Can't connect to MySQL server on '<IP_ADDRESS>' (111) - SELECT * FROM `contributor_core`, `contributor_delta` WHERE MATCH('John') AND `sphinx_deleted` = 0 LIMIT 0, 25; SHOW META
     # ./app/controllers/contributors_controller.rb:28:in `autocomplete'
     # ./spec/controllers/contributors_controller_spec.rb:186:in `block (4 levels) in <top (required)>'

Finished in 7.47 seconds (files took 18.99 seconds to load)
27 examples, 1 failure

Failed examples:

rspec ./spec/controllers/contributors_controller_spec.rb:185 # ContributorsController when the user is authenticated GET autocomplete responds with a 200 status code

To avoid this error, I go in and remove this file, then the tests run successfully.

Note, I've also had this issue on production, but I haven't been able to reproduce it as well.

vagrant$/opt/rails/production/current$ ll tmp/binlog/test/
total 4
drwxr-xr-x 1 production production 102 Sep  3 04:31 ./
drwxr-xr-x 1 production production 170 Sep  3 04:12 ../
-rwxr-xr-x 1 production production  11 Sep  1 07:48 binlog.meta*

production@vagrant:/opt/rails/production/current$ rm tmp/binlog/test/binlog.meta

When I remove that file, I can run the test successfully but note, sometimes the file is the binlog.lock file, so its not always the binlog.meta file.

Here's my thining_sphinx.yml file.
production:
  address: <IP_ADDRESS>
  mysql41: 9312
  sql_host: myhost
  sql_port: mysql41
  pid_file: /opt/run/production-schedule/searchd.pid
  searchd_file_path: /opt/data/production-schedule/sphinx/data
  indices_location: /opt/data/production-schedule/sphinx/data
  configuration_file: /opt/data/production-schedule/sphinx/production.sphinx.conf
  max_matches: 1000000
  quiet_deltas: true
  mem_limit: 512M

development:
  address: localhost
  mysql41: 9312
  sql_host: localhost
  sql_port: mysql41
  pid_file: /opt/run/production-schedule/searchd.pid
  searchd_file_path: /opt/data/production-schedule/sphinx/data
  indices_location: /opt/data/production-schedule/sphinx/data
  configuration_file: /opt/data/production-schedule/sphinx/development.sphinx.conf
  max_matches: 1000000
  quiet_deltas: true
  mem_limit: 512M

test: &TEST
  mysql41: 9307
  sql_port: mysql41
  searchd_file_path: tmp/sphinx/test/data
  indices_location: tmp/sphinx/test/data
  configuration_file: tmp/sphinx/test.sphinx.conf

cucumber:
  <<: *TEST

I'm on Thinking Sphinx 3.1.1 with Sphinx 2.0.4-id64-release (r3135) and Rails 3.2.19.  I thought maybe I can upgrade to thinking sphinx 3.1.4, but due to my use of polymorphic associations I can't do that until I'm on Rails 4.  Any idea why this is happening or how I can avoid this odd behavior?

I don't suppose you can share the test in question? And any setup/teardown code for tests using Sphinx?

Sure, given my test db is setup:
Here's my spec/support/sphinx.rb
module SphinxHelpers

  def self.index
    ThinkingSphinx::Test.index
    # Wait for Sphinx to finish loading in the new index files.
    sleep 0.25 until index_finished?
  end

  def self.index_finished?
    Dir[Rails.root.join(ThinkingSphinx::Test.config.indices_location, '*.{new,tmp}.*')].empty?
  end

end

RSpec.configure do |config|
  config.include SphinxHelpers, type: :feature

  config.before(:suite) do
    # Ensure sphinx directories exist for the test environment
    ThinkingSphinx::Test.init
    # Configure and start Sphinx, and automatically
    # stop Sphinx at the end of the test suite.
    ThinkingSphinx::Test.start_with_autostop
  end
end

Here's my spec/support/spec_helper.rb
# This file is copied to ~/spec when you run 'ruby script/generate rspec'
# from the project root directory.
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path(File.dirname(__FILE__) + '/../config/environment')
require 'rspec/core'
require 'rspec/rails'
require 'webmock/rspec'

# Requires supporting files with custom matchers and macros etc. in ./support/ and its subdirectories.
Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f|
  require f
}

# don't allow outgoing HTTP connections for API tests or otherwise,
# instead, those requests should be stubbed
WebMock.disable_net_connect!(allow_localhost: true)

RSpec.configure do |config|
  # If you're not using ActiveRecord you should remove these
  # lines, delete config/database.yml and disable :active_record
  # in your config/boot.rb
  config.use_transactional_fixtures = false
  config.use_instantiated_fixtures  = false
  config.fixture_path = Rails.root + '/spec/fixtures/'

  config.include FactoryGirl::Syntax::Methods
  config.include Capybara::DSL

  # Define which tables *not* to truncate
  keep_tables = %w[users roles roles_users rights rights_roles]

  # Before the entire test suite runs, clear the test database out completely.
  # This gets rid of any garbage left over from interrupted or poorly-written tests —
  # - a common source of surprising test behavior.
  config.before(:suite) do
    DatabaseCleaner.clean_with(:truncation, {
      :except => keep_tables
      }
    )
    DatabaseCleaner.strategy = :truncation, {
      :except => keep_tables
    }
  end

  # Truncations handle multiple database connections, per the docs.
  # Otherwise, not everything is getting cleaned properly in tests where both dbs are accessed.
  config.before(:each) do
    DatabaseCleaner.clean
  end

  #confirms validity of defined factories
  config.before(:suite) do
    FactoryGirl.lint
  end
end

Here's the relevant spec
require 'spec_helper'

describe ContributorsController, :type => :controller do

  let(:contributor) { Contributor.create!(
    :first_name => "Conrad",
    :last_name => "Tributor",
    :display_name => "Conrad Tributor")
  }
  let(:second_contributor) { Contributor.create!(
    :first_name => "Connie",
    :last_name => "Tribution",
    :display_name => "Connie Tribution")
  }

  before :each do
    Contributor.destroy_all #b/c database cleaner doesn't clean up the legacy database
  end

  describe "GET autocomplete" do

    it "responds with a 200 status code" do
      get :autocomplete, :q => "John"
      expect(response.status).to eq(200)
    end

    it "renders names based on the search results from the q param" do
      allow(controller).to receive(:basic_search).with("Con").and_return(
        [ contributor, second_contributor ]
      )
      get :autocomplete, :q => "Con"
      expect(response.body).to match(/Conrad Tributor/)
      expect(response.body).to match(/Connie Tribution/)
    end

  end
end

And again the running of that spec with the binlog error:

$ bundle exec rspec spec/controllers/contributors_controller_spec.rb:185
** [Raven] Raven 0.13.3 ready to catch errors
Run options: include {:locations=>{"./spec/controllers/contributors_controller_spec.rb"=>[185]}}
Failed to start searchd daemon. Check /opt/rails/production/current/log/test.searchd.log.
F
rspec ./spec/controllers/contributors_controller_spec.rb # ContributorsController when the user is authenticated GET autocomplete responds with a 200 status code

$ tail /opt/rails/production/current/log/test.searchd.log
[Fri Sep  4 03:07:14.278 2015] [23921] Child process 23922 has been finished, exit code 1. Watchdog finishes also. Good bye!
[Fri Sep  4 03:08:41.854 2015] [24135] Child process 24136 has been forked
[Fri Sep  4 03:08:41.855 2015] [24136] listening on <IP_ADDRESS>:9307
[Fri Sep  4 03:08:41.938 2015] [24136] binlog: replaying log /opt/rails/production/current/tmp/binlog/test/binlog.001
[Fri Sep  4 03:08:41.939 2015] [24136] WARNING: binlog: index (null): missing; tids 1 to 1 skipped!
[Fri Sep  4 03:08:41.939 2015] [24136] binlog: replay stats: 0 rows in 0 commits; 3 updates; 1 indexes
[Fri Sep  4 03:08:41.939 2015] [24136] binlog: finished replaying /opt/rails/production/current/tmp/binlog/test/binlog.001; 0.0 MB in 0.000 sec
[Fri Sep  4 03:08:41.939 2015] [24136] binlog: replaying log /opt/rails/production/current/tmp/binlog/test/binlog.002
[Fri Sep  4 03:08:41.940 2015] [24136] FATAL: binlog: update: descending tid (index=(null), lasttid=2, logtid=1, pos=528)
[Fri Sep  4 03:08:41.944 2015] [24135] Child process 24136 has been finished, exit code 1. Watchdog finishes also. Good bye!

Just to clarify, I'm not sure this has to do with the test configuration.  I just ran into this on production.
I went to run a ts:rebuild because I suspected something was off with the search results, we have the ts:index running every 15 minutes on a cron job.  The production environment on the ts:rebuild could not start the search daemon either, because of the binlog files.

$ bundle exec rake ts:rebuild RAILS_ENV=production
** [Raven] Raven 0.13.3 ready to catch errors
Stopped searchd daemon (pid: 23049).
 Check /var/log/production-schedule/production.searchd.log.
Failed to start searchd. Check the log files for more information.

$ tail -f /var/log/production-schedule/production.searchd.log
[Fri Sep  4 08:15:23.508 2015] [23049] rotating index 'contributor_core': success
[Fri Sep  4 08:15:23.509 2015] [23049] rotating index: all indexes done
[Fri Sep  4 08:29:27.063 2015] [23049] caught SIGTERM, shutting down
[Fri Sep  4 08:29:30.245 2015] [23049] shutdown complete
[Fri Sep  4 08:29:30.249 2015] [23048] Child process 23049 has been finished, exit code 0. Watchdog finishes also. Good bye!
[Fri Sep  4 08:29:50.770 2015] [13887] Child process 13888 has been forked
[Fri Sep  4 08:29:50.771 2015] [13888] listening on <IP_ADDRESS>:9312
[Fri Sep  4 08:29:50.782 2015] [13888] binlog: replaying log /opt/rails/production/shared/tmp/binlog/production/binlog.001
[Fri Sep  4 08:29:50.782 2015] [13888] FATAL: binlog: log open error: failed to open /opt/rails/production/shared/tmp/binlog/production/binlog.001: No such file or directory
[Fri Sep  4 08:29:50.785 2015] [13887] Child process 13888 has been finished, exit code 1. Watchdog finishes also. Good bye!

$ rm tmp/binlog/production/binlog.
binlog.lock  binlog.meta

$ rm tmp/binlog/production/binlog.*

$ bundle exec rake ts:start RAILS_ENV=production
** [Raven] Raven 0.13.3 ready to catch errors
Started searchd successfully (pid: 14132).

$ bundle exec rake ts:rebuild RAILS_ENV=production
** [Raven] Raven 0.13.3 ready to catch errors
Stopped searchd daemon (pid: 14132).

And here again, after removing the binlog files manually, it also works.

Regarding the tests - the Sphinx indexing methods are only running for feature specs, not controller specs, and you're stubbing out the search call for the second it call, but not the first, so I'd recommend modifying things so Sphinx doesn't come into play at all. Mind you, I'd also be returning test doubles instead of actual Contributor objects, thus avoiding any reliance on the database as well.
As for production, do you have output from cron when it's running the indexing task?

Interesting point about how to run the tests, thanks for the tips!
As for the production error, that's in the logs above, in part.  As for the CRON logs, I have a tail of var/log/syslog here, for when the error occurred.
Sep  8 07:15:01 velo CRON[30897]: (production) CMD (   /bin/bash -l -c "cd /opt/rails/production/current/; bundle exec rake ts:index RAILS_ENV=production")
Sep  8 07:15:17 velo dhclient: DHCPREQUEST of <IP_ADDRESS> on em1 to <IP_ADDRESS> port 67 (xid=0x3409ab0e)
Sep  8 07:15:17 velo dhclient: DHCPACK of <IP_ADDRESS> from <IP_ADDRESS>
Sep  8 07:15:17 velo dhclient: bound to <IP_ADDRESS> -- renewal in 1489 seconds.
Sep  8 07:15:22 velo CRON[30896]: (CRON) info (No MTA installed, discarding output)
Sep  8 07:17:01 velo CRON[31102]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

When I came in this morning I ran a manual ts:rebuild on production, to try and reproduce the issue, and it also failed to start the search daemon.  So, I'm not sure what in the world is wrong here but it doesn't seem specific to the ts:index being run from the cron.  The only way I can get around this is by clearing out the tmp/binlog/production/* files.

I've run into a very similar or the same problem as well, primarily on production. Sphinx searchd will fail to restart (very quietly, too, which is frustrating) unless I clear out binlog. I think this might be a Sphinx issue not a ThinkingSphinx issue but I'm not sure. I'm currently looking into it and will update with what I find.

Yeah, I'm still having this (silent and frustrating) issue on production.  My current plan is to upgrade to rails 4 from 3.2, upgrade sphinx and thinking sphinx and hopefully leave this bug behind me.

The usual output I get is something like this:
[Tue Sep 29 06:49:28.481 2015] [14007] binlog: replaying log /var/www/knotweed-admin/shared/binlog/binlog.001
[Tue Sep 29 06:49:28.482 2015] [14007] FATAL: binlog: update: descending tid (index=(null), lasttid=247, logtid=1, pos=12750)
[Tue Sep 29 06:49:28.512 2015] [14006] Child process 14007 has been finished, exit code 1. Watchdog finishes also. Good bye!

Then if I just remove all files from the binlog folder, it works fine.

Yeah, that's exactly what I'm experiencing too.  What's your stack and versions of Sphinx/TS/Rails/Ruby etc.?

Rails 3.2.13, thinking-sphinx 3.1.1, Sphinx 2.0.4-release, Ruby 1.9.3

I see a couple references to the exact error in the Sphinx forums and the only response says "clear out your binlog files..." gee thanks...

This looks interesting -- what version of Sphinx are you running?
http://sphinxsearch.com/bugs/view.php?id=1504
The only catch for me is that it references RT indexing in the bug report, which I'm not using...but their error message is identical.

I'm on Sphinx 2.0.4-id64-release (r3135)

Upgrading Sphinx definitely sounds like a good place to start - I think the 2.1.x releases should work fine with TS v3.1.1 (the latest TS, v3.1.4, supports 2.2.x releases of Sphinx).

I was having the same problem, upgrading Sphinx to 2.1.9 solved it for me.
Before that I was running Sphinx 2.0.4, Ubuntu 14.04, ThinkingSphinx 3.0.6.

Yeah, I think this is a version issue with 2.0.4 of Sphinx.  I'm closing this issue as I think the source is now confirmed.


[INDEX]chore: replace index color logic with new index alias

related to https://github.com/etalab/annuaire-entreprises-search-api/pull/328

E2E fail because index-reader is not created yet. Indexing is ongoing...


New Machine requirement: DockerStatic SUSE BCI image

I need to request a new machine:

New machine operating system (e.g. linux/windows/macos/solaris/aix): linux
New machine architecture (e.g. x64/aarch32/arm32/ppc64/ppc64le/sparc): ideally all supported ones - arm64, ppc64le, s390x, amd64
Provider (leave blank if it does not matter):
Desired usage: Docker image for SUSE BCI, which is broadly comparable to UBI - images come from registry.suse.com/bci/bci-base as per https://registry.suse.com/bci/bci-base-15sp5/index.html
Any unusual specification/setup required: Initially it will be likely same as UBI but with dnf replaced by zypper and epel removed from the installed packages in the dockerfile
How many of them are required: 1 on each architecture

Please explain what this machine is needed for:
We do not have any SLES testing capability on anything other than s390x at the moment. Testing on their BCI v15 images would give us a high degree of confidence that our binaries will work correctly on customer's SLES installations.
Related: https://github.com/adoptium/infrastructure/issues/2689 where SLES15 was added

We do now have SLES15 images from registry.suse.com/suse/sle15 (implemented in https://github.com/adoptium/infrastructure/pull/2696) so this may not be so important at the moment. Moving to backlog


registry crashes on failed validation

My validation errors cause it to output the .json I guess, could someone look at this?
http://registry.jsonresume.org/a58a3c79

It's actually because the latest version of that theme is broken.
e.g. http://registry.jsonresume.org/a58a3c79?theme=kendall will work.
I've already alerted the theme developer.
Luckily, we can also use older versions of themes with JSON Resume
Such as<EMAIL_ADDRESS>When setting your theme using the cli just add @0.9.11

Oh, ok, thank you!
On 10 October 2015 09:18:01 CEST, Thomas Davis<EMAIL_ADDRESS>wrote:

It's actually because the latest version of that theme is broken.
e.g. http://registry.jsonresume.org/a58a3c79?theme=kendall will work.
I've already alerted the theme developer.
Luckily, we can also use older versions of themes with JSON Resume
Such as<EMAIL_ADDRESS>When setting your theme using the cli just add @0.9.11

Reply to this email directly or view it on GitHub:
https://github.com/jsonresume/registry-server/issues/76#issuecomment-147048422

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

This issue is now fixed, visit http://registry.jsonresume.org/a58a3c79


Add files via upload

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.

[ ] New feature (non-breaking change which adds functionality)
[ ] Optimization (back-end change that speeds up the code)
[ ] Bug fix (non-breaking change which fixes an issue)

Key checklist:

[ ] No style issues: $ pre-commit run (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)
[ ] All tests pass: $ python run-tests.py --all
[ ] The documentation builds: $ python run-tests.py --doctest

You can run unit and doctests together at once, using $ python run-tests.py --quick.
Further checks:

[ ] Code is commented, particularly in hard-to-understand areas
[ ] Tests added that prove fix is effective or that feature works

Hi @kimo707. If you are just trying to add drive cycle data to use for yourself you can simply import the data locally (e.g. using pandas) and create your own interpolant like in the drive cycle example

Hi Robert,
Iam writing to inform you about a problem I have encountered while attempting to change the input current using the file in drive_cycles WLTC.csv. I have followed the code example provided, but unfortunately, I keep receiving an error message stating, "The corrector convergence failed repeatedly" or "with |h| = hmin." The same issue persists when using other files as well.
Here is the code I have been using:
model = pybamm.lithium_ion.DFN()
import drive cycle from file
drive_cycle = pd.read_csv(r"C:\Users\DSR-KI\Downloads\WLTC.csv", delimiter=',', comment="#", header=None).to_numpy()
#drive_cycle[:, 1] = drive_cycle[:, 1]
load parameter values
param = pybamm.ParameterValues("Chen2020")
current_interpolant = pybamm.Interpolant(drive_cycle[:, 0], drive_cycle[:, 1], pybamm.t)
param["Current function [A]"] = current_interpolant
set up simulation
solver = pybamm.CasadiSolver(mode="fast")
simulation = pybamm.Simulation(model, parameter_values=param, solver=solver)
simulate
simulation.solve()
plot
simulation.plot()
I have tried to troubleshoot the problem on my own, but I have been unable to find a solution. Hence, I am reaching out to seek your assistance in resolving this issue. I believe your expertise in this area will greatly help me overcome this hurdle.
Could you kindly provide guidance or suggest any possible solutions that may help fix this error? I would greatly appreciate your input and any instructions you can provide.
Thank you very much for your attention to this matter. I am looking forward to your prompt response.
Best regards,
Karim Ismail

From: Robert Timms @.***>
Sent: Wednesday, May 31, 2023 1:15:20 PM
To: pybamm-team/PyBaMM
Cc: Hamdy Mohamed Mohamed Ismail, Karim; Mention
Subject: Re: [pybamm-team/PyBaMM] Add files via upload (PR #3001)
Hi @kimo707https://github.com/kimo707. If you are just trying to add drive cycle data to use for yourself you can simply import the data locally (e.g. using pandas) and create your own interpolant like in the drive cycle examplehttps://github.com/pybamm-team/PyBaMM/blob/develop/examples/scripts/drive_cycle.py
—
Reply to this email directly, view it on GitHubhttps://github.com/pybamm-team/PyBaMM/pull/3001#issuecomment-1569996394, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BAFW3YV2YJZKWT5MYGANDN3XI4R4RANCNFSM6AAAAAAYVIP43M.
You are receiving this because you were mentioned.Message ID: @.***>

Discussion continuing at #3015


Design ideas

Interesting article on data table design.
https://uxdesign.cc/design-better-data-tables-4ecc99d23356
Feel free to close.

While I don't disagree with the article in itself, it really only talks about things to improve the user experience of (and thus maybe the insights possibly gained from) the representation of data tables.
But it doesn't really have anything to say about possible improvements to the underlying data tables (although even there I imagine you could improve the user experience).
Still, for the browser viewer of NimData (and any other data frame) these things sound valuable! Although I suppose those features can be easily built with some HTML + CSS and maybe JS in a data frame independent way by just receiving the table as JSON.
In the end though I remain convinced that tables themselves are a bad way to look at your data. That's what data visualization (and not table visualization :P) is for after all. Now having this kind of table viewer in the browser combined with a super nice interactive vega plot builder... That would be something.

Oh yeah, that was just about the visualization.
I really want to do some Vega stuff but I also want to do a lot of low-level plumbing :/, too little time so much to do ...

too little time so much to do ...

... yup

Yes interesting article. This is mainly relevant for my tabloo project. The table visualization in NimData simply bakes everything (data + CSS + JS) into static HTML, which obviously does not scale. Tabloo fully decouples visualization front-end from the data back-end. Currently I only have a Python backend, but the idea was to add a Nim backend at some point as well.

In the end though I remain convinced that tables themselves are a bad way to look at your data.

I have a totally different experience :-). For me, seeing data visualized in tables (with the possibilities of filtering + sorting) is by far the quickest way to get a first understanding of data. For things like manging your mails, or browsing files I feel much more efficient when I have a table. I feel that tables mainly have a bad reputation due to "mobile first" design, but fortunately I'm not forced to analyzing my data on a smart phone ;).

In the end though I remain convinced that tables themselves are a bad way to look at your data.

I have a totally different experience :-). For me, seeing data visualized in tables (with the possibilities of filtering + sorting) is by far the quickest way to get a first understanding of data. For things like manging your mails, or browsing files I feel much more efficient when I have a table. I feel that tables mainly have a bad reputation due to "mobile first" design, but fortunately I'm not forced to analyzing my data on a smart phone ;).

That's very interesting. I probably have a skewed perception due to the kind of data I usually look at. It's mostly just numerical data, where information printed as strings is usually very hard to make out / often gives a wrong impression. Extracting min/max values from a table is about all I use it for.
Once you add filtering to the options - and not just sorting - I'd probably change my mind somewhat. But that's not something I've really encountered when looking at tabular data. Ok, I guess in a way when searching on websites, which return data in a tabular form - where I'd agree. Well, and of course when programmatically dealing with data frames and then echoing the table, but that's not what I had in mind when I said tables are bad way to represent data.
So I guess I should rephrase my statement and say it really depends on the data and the tools provided by the table visualizer.

In the end though I remain convinced that tables themselves are a bad way to look at your data.

I have a totally different experience :-). For me, seeing data visualized in tables (with the possibilities of filtering + sorting) is by far the quickest way to get a first understanding of data. For things like manging your mails, or browsing files I feel much more efficient when I have a table. I feel that tables mainly have a bad reputation due to "mobile first" design, but fortunately I'm not forced to analyzing my data on a smart phone ;).

I have a mixed experience, I scan tables much quicker but I don't want to miss dinosaurs

https://www.data-to-viz.com/caveats.html
https://www.geckoboard.com/learn/data-literacy/statistical-fallacies/


After cancel files upload on client side, server side throws error

After users cancel the files upload process, then the Meteor-Files server will throw the error message - [FilesCollection] [writeStream] [ensureFile] [open] [Error:] [500] .
Is it because when the upload process is canceled, the file will be removed immediately on server side, then server is writing data to a file which is not exist? Even though as stated it has checked the file exists or not, but could that be interrupted by an asynchronous process which tries to delete the file?

The permissions  and parentDirPermissions  we set to the files collection both are 0777 and we deploy it on Galaxy server.
Also, not sure how could we handle this error on our codes..
Thanks

Hello @Diwei-Chen ,
Looks like a [bug] candidate.
Please follow our issue template, and add missing info:

Version of Meteor-Files you're experiencing this issue
Version of Meteor you're experiencing this issue
Is it Client or Server issue?
Post Client and/or Server logs with enabled debug option, you can enable "debug" mode in Constructor

ty

Thanks for your quick reply @dr-dimitru
Sorry, those are:

We are on Meteor-Files 1.8.2*
Meteor 1.5.2
This is Server issue
The Server logs are listed below:

8yv9w
2017-09-21 10:51:36+10:00Dropped 731 lines of logs. Consider reducing log volume in your app.
8yv9w
2017-09-21 10:51:36+10:00[FilesCollection] [File Start Method] 1 copy.png - KqszK8jamB3hvGmGa
8yv9w
2017-09-21 10:51:36+10:00[FilesCollection] [Upload] [DDP Start Method] Got #-1/1 chunks, dst: 1 copy.png
8yv9w
2017-09-21 10:51:37+10:00[FilesCollection] [Upload] [DDP] Got #1/1 chunks, dst: 1 copy.png
8yv9w
2017-09-21 10:51:38+10:00[FilesCollection] [Abort Method]: KqszK8jamB3hvGmGa - assets/app/uploads/ibmConnectionsFiles/KqszK8jamB3hvGmGa.png
8yv9w
2017-09-21 10:51:38+10:00[FilesCollection] [remove({"_id":"KqszK8jamB3hvGmGa"})]
8yv9w
2017-09-21 10:51:38+10:00[FilesCollection] [_preCollectionCursor.observe] [removed]: KqszK8jamB3hvGmGa
8yv9w
2017-09-21 10:51:38+10:00[FilesCollection] [_preCollectionCursor.observe] [removeUnfinishedUpload]: KqszK8jamB3hvGmGa
8yv9w
2017-09-21 10:51:38+10:00[FilesCollection] [unlink(KqszK8jamB3hvGmGa, undefined)]
8yv9w
2017-09-21 10:51:38+10:00[FilesCollection] [Abort Method]: KqszK8jamB3hvGmGa - undefined
xd39

Hello @Diwei-Chen ,
Thank you for the update.

Is this happens only on Galaxy or any environment including development?
Is the issue appears on the development too, please describe your dev.env? Linux? Mac? Win?
Is the Abort method called by the user or programmatically?
Is the issue appears on the every "Abort" invocation or only sometimes?

Hi @dr-dimitru

This error only throws on Galaxy yesterday. I couldn't replicate it on my local server.

My dev.env is on Mac(10.12.6). When I try to upload a file today(just normal upload), although the progress shows curValue is 100, the state is still "active" instead of "completed"

Also, the server throws following exception:

I20170921-12:42:24.175(10)? Exception in callback of async function: Error: [FilesCollection] [writeStream] [ensureFile] [Error:] [500]
I20170921-12:42:24.177(10)?     at packages/ostrio_files/write-stream.coffee:36:17
I20170921-12:42:24.179(10)?     at packages/ostrio_files/write-stream.coffee:7:55
I20170921-12:42:24.180(10)?     at runWithEnvironment (packages/meteor.js:1189:24)

The Abort method is called by the user. The code snippet is:

"click #cancel-upload": function(e, template) {
    const currentUpload = template.data.currentUpload.get();
    _.each(currentUpload, (ref) => {
      if (typeof ref.abort === 'function') {
        ref.abort();
        console.log('ref abort', ref);
      }
    })
    template.data.currentUpload.set(currentUpload);
    template.data.isUploadCanceled.set(true);
    $('#modal-upload-cancel').modal('hide');
    $('#modal-upload-progress').modal('hide');
  },

It appears on every "Abort" invocation in my use case.

Regards,

Marked as [help wanted], I haven't faced Galaxy yet.
I know it uses Docker solution deep inside and has no persistent storage, same as Heroku (where it works fine).
@Diwei-Chen any ideas how it might be related to this? Like if file was removed before upload is finished?
Take a look on next threads:

https://github.com/VeliovGroup/Meteor-Files/issues/398
Looks like similar issue: https://github.com/VeliovGroup/Meteor-Files/issues/452

Thanks for explanation @dr-dimitru
Yes, this is related to our issue and it is one of the two that causes the problem. As we used the default path so probably we don't have the permissions to write files. But after we changed it to the absolute path which is suggested as '/tmp', this issue still exists.
We then did some revisions on our codes and we found we shouldn't abort() the file upload process that has finished. Cos the abort method will remove the file reference on the file collection and unlink(remove) the corresponding file. But after the file has been uploaded to our server, we needed to do one more step on the file, which is another process(FileReader) is processing the file. So if we abort all the file upload processes, which will raise race condition on our server and then the server crashed by unhandled exception thrown by FileReader.
We now have fixed the issue and thanks heaps for your help!
Regards,
Diwei

Cos the abort method will remove the file reference on the file collection and unlink(remove) the corresponding file.

👍 👨✈

We now have fixed the issue and thanks heaps for your help!

Great, I'm glad it helped you.
Feel free to reopen it in case if the issue still persists on your end.
Please, support this project by:

Star on GitHub
Star on Atmosphere
Check other packages we have made


[CI] shotgun gblinear updater test is failing with hypothesis

https://xgboost-ci.net/blue/organizations/jenkins/xgboost/detail/PR-5804/3/pipeline#step-256-log-1810

[2020-06-17T07:08:22.596Z] ---------------------------------- Hypothesis ----------------------------------

[2020-06-17T07:08:22.596Z] Falsifying example: test_shotgun(

[2020-06-17T07:08:22.596Z]     self=<test_linear.TestLinear at 0x7f610d69a510>,

[2020-06-17T07:08:22.596Z]     param={'booster': 'gblinear',

[2020-06-17T07:08:22.596Z]      'eta': 0.23500811308622363,

[2020-06-17T07:08:22.596Z]      'nthread': 1,

[2020-06-17T07:08:22.596Z]      'tolerance': 1e-05},

[2020-06-17T07:08:22.596Z]     num_rounds=31,

[2020-06-17T07:08:22.596Z]     dataset=sparse,

[2020-06-17T07:08:22.596Z] )

[2020-06-17T07:08:22.596Z] Failed to reproduce exception. Expected:

[2020-06-17T07:08:22.596Z] Traceback (most recent call last):

[2020-06-17T07:08:22.596Z]   File "/workspace/tests/python/test_linear.py", line 60, in test_shotgun

[2020-06-17T07:08:22.596Z]     assert tm.non_increasing(result)

[2020-06-17T07:08:22.596Z] AssertionError: assert False

[2020-06-17T07:08:22.596Z]  +  where False = <function non_increasing at 0x7f60c507d4d0>([171.695969, 164.865128, 160.776962, 158.333054, 156.867538, 155.983749, ...])

[2020-06-17T07:08:22.596Z]  +    where <function non_increasing at 0x7f60c507d4d0> = tm.non_increasing

[2020-06-17T07:08:22.596Z] =============================== warnings summary ===============================

@RAMitchell Can we relax the unit test?

Yes, for that one maybe just checked the training loss on the first and last iteration instead of all.

Falsifying example: test_shotgun(
    self=<test_linear.TestLinear at 0x989df48>,
    param={'booster': 'gblinear',
     'eta': 0.2190668061375675,
     'nthread': 1,
     'tolerance': 1e-05},
    num_rounds=31,
    dataset=sparse,
)


Add document validation for Ruby code

The Ruby console app needs to validate the input document. Please follow validation rules from documentation.

Can I take this one?

Please go ahead and submit your PR!

Thanks @dmodena ! PR has been submitted. It failed the tests, but as far as I can tell that's because the test for email validation failed--which wasn't the thing I was working on, so I think it's fine.

PR closed on #37


Let there be headers and footers!

Added a PageLayout component that takes care of fixed placement headers and footers.
Wrapped all top level pages into this component
Magic 🌟

Index looks:

Screenshots look good, code looks good. Make npm run check-types happy obviously, but otherwise, this is neat! (where's the approve button on this thing)


ZEPPELIN-885 Add option to send email in scheduler execution

What is this PR for?
Add the option to send email when a note is runing using the scheduler
What type of PR is it?
Improvement
Todos
What is the Jira issue?

[ZEPPELIN-885] (https://issues.apache.org/jira/browse/ZEPPELIN-885)

How should this be tested?
Set email in scheduler and add cron expresion to execute note.
Screenshots (if appropriate)

Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

Thank you for good feature.
I like this feature.
but, i got following problem.
Zeppelin Server log.
ERROR [2016-05-26 11:27:01,752] ({DefaultQuartzScheduler_Worker-2} Notebook.java[sendEmail]:594) - Error:
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.googlemail.com:465
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421)
	at org.apache.commons.mail.Email.send(Email.java:1448)
	at org.apache.zeppelin.notebook.Notebook.sendEmail(Notebook.java:591)
	at org.apache.zeppelin.notebook.Notebook$CronJob.execute(Notebook.java:513)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
Caused by: javax.mail.SendFailedException: Send failure (javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/answer/14257 z12sm1446736pfj.1 - gsmtp
)
	at javax.mail.Transport.send(Transport.java:163)
	at javax.mail.Transport.send(Transport.java:48)
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1411)
	... 5 more
Caused by: javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/answer/14257 z12sm1446736pfj.1 - gsmtp

	at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:892)
	at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:814)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:728)
	at javax.mail.Service.connect(Service.java:274)
	at javax.mail.Service.connect(Service.java:91)
	at javax.mail.Service.connect(Service.java:76)
	at javax.mail.Transport.send(Transport.java:94)
	... 7 more
ERROR [2016-05-26 11:27:03,392] ({DefaultQuartzScheduler_Worker-2} Notebook.java[sendEmail]:594) - Error:
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.googlemail.com:465
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421)
	at org.apache.commons.mail.Email.send(Email.java:1448)
	at org.apache.zeppelin.notebook.Notebook.sendEmail(Notebook.java:591)
	at org.apache.zeppelin.notebook.Notebook$CronJob.execute(Notebook.java:539)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
Caused by: javax.mail.SendFailedException: Send failure (javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/answer/14257 f9sm1425655pfd.56 - gsmtp
)
	at javax.mail.Transport.send(Transport.java:163)
	at javax.mail.Transport.send(Transport.java:48)
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1411)
	... 5 more
Caused by: javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/answer/14257 f9sm1425655pfd.56 - gsmtp

	at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:892)
	at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:814)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:728)
	at javax.mail.Service.connect(Service.java:274)
	at javax.mail.Service.connect(Service.java:91)
	at javax.mail.Service.connect(Service.java:76)
	at javax.mail.Transport.send(Transport.java:94)
	... 7 more

My Environment : Mac OS elcapitan, chrome lastests.
my note context : "println("hellow");
cron time 1m;
email : onStart<EMAIL_ADDRESS>email : onError<EMAIL_ADDRESS>email : onSuccess<EMAIL_ADDRESS>

@cloverhearts maybe you need to set up the smtp informations. you can set the variables in the "conf/zeppelin-site.xml".

cool - should we have the info in documentation?

@astroshim Oh, I see. Thank you!

@vgmartinez Thank you for contribution!
Befor deep dive into the code, I have a question - could you pelase explain the use-case you have in mind for this feature?
I'm trying to understand in particular what is the benefit of introducing complexity of SNTP support in the Zeppelin codebase (not sure that Notebook.java is the best place for it either), versus just scheduling a notebook using existing scheduller, that just loads the SNTP library (using %dep) and then sends any template out.
See #8 from this notebook for an example of the data product, that uses this approach for sending out email notifications.

@cloverhearts @astroshim @felixcheung thks, add more info and doc ASAP.
hi @bzz, I think having the option to send an email when you finish executing a note or when an error occurs in one paragraph is a good utility for the user.
e.g if you have cron expression to run every monday is useful to receive an email when it starts, when finished or when there is an error.
what do you think?

@vgmartinez Thanks for contribution.
@vgmartinez and folks, how about having generalized event hook instead of just handling email after scheduler execution?
Zeppelin can generate events,

Scheduler execution (start, success, fail)
Paragraph execution (CRUD, status change)
Notebook (CRUD)
etc

And if there're some extensible mechanism that allow user plugin custom event handler. So possibly not only sending email, but also execute shell script or any other action will be possible for all type of events.
What do you think?

Hi @Leemoonsoo, I totally agree with you. I'll think a bit about this topic, if you already have some idea we can debate.
thanks for the suggestion.

@vgmartinez thank you for explaining the use case, it makes perfect sense and is not covered by the case I was referring to. May it's worth putting it in JIRA\PR description as well, how do you think?
@Leemoonsoo suggestion sounds really nice indeed. Even something simpler and less general with just an email would work as a first step, but email facilities better be placed outside of the Notebook.java. I presume it may very well be some kind of 'client' of the Notebook.java API inside zengine.

@vgmartinez I think move email facilities from Notebook.java to new class, like @bzz mentioned, would be the first step to generalize it. Doesn't need to generalize everything from the beginning, but i think it worth to show possibilities of implementing more events and more actions. And taking code out from Notebook.java will help.

@bzz @Leemoonsoo thks for review.
@bzz I'm sorry I have not explained well. I've added more description to JIRA/PR
I created a new class for events outside notebook, to use for other types of event notifications. Please take a look.

Do you mind add new configurations to https://github.com/apache/incubator-zeppelin/blob/master/docs/install/install.md#zeppelin-configuration as well??

@Leemoonsoo sorry for delay. I added the configurations in the file install.md and delete the static modifier.

@vgmartinez No worries. CI build fails with error
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:30 min
[INFO] Finished at: 2016-06-06T22:47:47+00:00
[INFO] Final Memory: 38M/471M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.rat:apache-rat-plugin:0.11:check (verify.rat) on project zeppelin-zengine: Too many files with unapproved license: 1 See RAT report in: /home/travis/build/apache/incubator-zeppelin/zeppelin-zengine/target/rat.txt -> [Help 1]

Could you take a look?

@Leemoonsoo CI check...

@vgmartinez Thanks for update.
I tried and found 'Cancel' button is not actually discarding chances in dialog. Check following screenshot

Hi @Leemoonsoo,
I have refactored the code to be able to add more channels of notifications, e.g slack, SNS (in the next PR)...
Please take a look...
thks


Edge 17 / FF (current) error with legacy method of integration

My implementation code:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
    <title>GameShowQuiz: game-show-quiz Demo</title>
    <script<EMAIL_ADDRESS>    <script>window.Promise || document.write('<script src=https://unpkg.com/zousan><\/script>');</script>
    <script defer src="https://unpkg.com/dimport/legacy" data-main="/dimport-test/game-show-quiz.js"></script>
  </head>

Screenshots of the errors are attached:
Edge 17:

Firefox (latest version):

Thanks~! I'd need to see your scripts' source in order to find the issue(s). It's apply rewrites to your statements, so I have to see where it's falling apart.
If it's sensitive, you can DM me 👍

Polymer build routine w/ keeping the modules relative to one another. Here's a temporary link we were testing
https://courses.aanda.psu.edu/arth111/sites/courses/aa/arth111/files/dimport-test/demo/index.html

I can also report that no modules / modules methodology was failing on firefox as well complaining that<EMAIL_ADDRESS>couldn't be resolved; does it maybe need something to work when not a top level domain?

TypeError: Error resolving module specifier<EMAIL_ADDRESS>would seem to suggest that (put that in a demo too) -- https://courses.aanda.psu.edu/arth111/sites/courses/aa/arth111/files/dimport-test/demo/modules.html

The last comments (re: ./node_modules) is a separate issue that I can resolve tonight. No need to open another ticket.
By the way, the type=nomodule is incorrect. This is my bad as the initial docs & example pages included that typo. It should be <script nomodule src="..."> and <script type="module" src="...".
I'll investigate further and fix what I find after the workday.
Thanks!

(fixed other link to reflect it) awesome! If it needs testing at some point I'm happy to keep trying. This would be an absolute game changer for web component implementation routines so very excited about this project / concept.

Thanks! You may want to try shimport too by the way, since you're already using the legacy modes.
My thoughts now (again, having done very little inspection) are that the webcomponent model may be throwing the wrapper for a loop. I wrote it expecting scripts only, so tbh I'm not sure how it's handling the SFC format, with HTML & CSS present.
🤷♂ Interested to find out

yea was looking at that too. just interested in seeing what I can make work; most likely I'd feature detect usage of legacy for IE11 builds (since it would have to be ES5 compiled anyway) and then ES6 via the modules/nomodules gig would hit a pretty wide net of web component capable browsers.
They DO have html/css in them but all imports are valid js files so hopefully just a parser issue.


Ensure --overwrite flag is only passed once

This fixes a bug where if CODEQL_ACTION_EXTRA_OPTIONS specified that --overwrite should be passed to database init, the --overwrite argument would be passed twice, leading to an error.
To accomplish this, I introduce an ignoringOptions argument to specify options in CODEQL_ACTION_EXTRA_OPTIONS that should be ignored.  It would be nice to have a general solution that didn't require specifying which options should be ignored, but the problem with that is that it does make sense to pass some flags more than once.
Merge / deployment checklist

[ ] Confirm this change is backwards compatible with existing workflows.
[ ] Confirm the readme has been updated if necessary.
[ ] Confirm the changelog has been updated if necessary.

Makes sense — did you include --expect-discarded-cache because that's another obvious one that should only be passed once? I wonder if that one should also be part of the changenote (though I guess then the note would need to be more generalized so we don't have to write a note each time we pass ignoringOptions).

I had a quick scan through and that was the most obvious other one to add.  I'll just include --overwrite in the changelog note though as I don't think we've advised customers to specify --expect-discarded-cache manually.


add iso function

Please consider adding iso function and possibly mapped and traversed form: https://github.com/ramda/ramda-lens
I checked them and I think main repo is a good place to add these ones.
I can submit a PR with test and docs if I get a 'green light' from one of the maintainers.

Certainly our lenses repo fizzled out without going anywhere.  I would be very interested in adding further optics into the main repo.
Feel free to create a PR for this.  I can't guarantee approval, but it will certainly get a fair hearing, and I am personally in favor of doing something like this.

@krzysztofpniak: Are you interested in creating a PR?

@CrossEye I can, but now I'm really busy. I think I can work on it in March.

Ok, then I will close this for now, we can start again then and hopefully be past v1.0.


nakama start not listen the port

all port are  not listen
i install it in centos7 with not docker
the log shows normal, but the port not listen, why??
i make sure the firewall is closed.
buet 7350 7351 not listen....

the relase version is nakama-3.11.0-linux-amd64.tar.gz

@diybl This is not a useful issue report. Looks like a topic better suited to the forum - https://forum.heroiclabs.com
Please include as much detail as you can, otherwise it will be hard to help.


Foundation not playing nice with Rail 6 and Webpacker gem

What should happen?
You should be able to install Foundation in a rails 6 application similar to the approach that the foundation-rails gem does. This is most likely my problem in that I do not fully understanding webpacker and I blame the Rails team for releasing something without at least some guide on how to use webpacker with other components added through gems.
I could of just ignored webpacker and used the asset pipeline, but I'm sure that will disappear in the future, so I thought I'd try.
What happens instead?
Without a guide, I attempted to put together what little I could find to add Foundation to a barebones rails 6 application using webpacker. After many hours I got my bare requirements (rails6, coffeescript, jQuery, foundation) to semi-work!
My only problem is my last step, adding foundation, disabled all custom coffeescript UJS events from responding. I looked to stackoverflow.com for help with a stackoverflow question but receive little response. To expand on the stackoverflow question I added the packdemo application to Github repo so everything is in one place.
Possible Solution

Again, I probably have the configuration wrong. I did leave turbo links in, which has caused me problems with foundation in the past. But I took it out at one point and still had the non-responsive problem. I've tried to move things around to see if there was a sequence loading problem but nothing helped.
The basic foundation grid works fine (responsive). Don't know if there is a conflict with installing jquery in webpaker and foundation requiring it. Think I did remove the import "jquery" and everything except events still work.
Context

I've been using Foundation for about three years and hope that the reboot is successful. I though I'd try here, hoping for a quick link, something like "Does this link help". If not I try to get on webpackers back!
Thank you for Foundation.

Hi @salex,
do you see any errors in the browser console?
Where can we see a livedemo? I have not used RoR for many years.

There are no errors in the browser console. If I select a button in elements (safari), I can see the click event is loaded.
I put up a development server running code in the repo code. The three buttons don't respond. the refresh button does (rails.ujs). If I remove calls to foundation-sites, all buttons respond.
Demo

Put up another page where I do not have and foundation classes on the page:
NoFoundationPage
The buttons work! Loading foundation on a page with a class seems to negate other js?

Mixing frameworks may have unwanted side-effects.

I think it is because of turbolinks.
At least it makes no sense that a click / inspect element on the button in a callout targets the outer container instead of the button.

See https://codepen.io/DanielRuf/pen/ExxxdEO in comparison (same markup using Foundation Sites 6.5.3).

Or maybe rails itself.
These following code parts are capturing the click:
activestorage.js
function didClick(event) {
  var target = event.target;

  if ((target.tagName == "INPUT" || target.tagName == "BUTTON") && target.type == "submit" && target.form) {
    submitButtonsByForm.set(target.form, target);
  }
}

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters

capture: A Boolean indicating that events of this type will be dispatched to the registered listener before being dispatched to any EventTarget beneath it in the DOM tree.

Thanks for your help. At least I have a few things I can try to narrow it down.
I did update the repo. I'll try to get rid of turbo links and see what that does. Then off to Rails.
I post something if I can figure anything out.

In file http://stevealex.us:4000/home/pi/apps/packdemo/app/javascript/packs/scss/_settings.scss line 881:
.callout {
  z-index: -1;
}

This puts the "callout" divs that contain your buttons behind everything else (clicks never reach buttons).
Remove this and it should work.

In file http://stevealex.us:4000/home/pi/apps/packdemo/app/javascript/packs/scss/_settings.scss line 881:
.callout {
  z-index: -1;
}

This puts the "callout" divs that contain your buttons behind everything else (clicks never reach buttons).
Remove this and it should work.

Seems this is the case, right. This code makes not much sense ;-)
This is what I have meant with different frameworks may conflict (especially when class names and code change the same elements).

The _settings file was copied from the app I'm considering rewriting. If you had a top-bar with a pulldown list, it would go behind a callout if there was one at the top of the content. That was a hack fix the problem that someone suggested.
I just picked a callout for the demo since it stood out.  Guess I should of increased the z-index on the pulldown, but that may have broken something else.
Thank you Jake and Daniel for your help. Maybe I can recover some of the time I've spent spinning the last week or so. At least I did figure how how to get foundation installed in rails 6 with webpacker.


Using multiple templates in ItemsRepeater.

Currently repeater will not properly recycle elements for items list where items might use more then one template. This is because recycling in the Repeater doesn't seem to employee logic for picking up recycled elements based on template used.
There is workarounds with ContentControl that will work but will negate recycling as actual content of the ContentControl will not be recycled.

Implemented by #4218


Dockerfile: Update + pin alpine version (to 3.20.2)

I wonder if we should use the "index digest" in the future (I think this is the sha256 for the am64 version of the image)?
(we are using amd64 architecture specific ones for other images, so probably this PR we should merge)
https://hub.docker.com/layers/library/alpine/3.20.2/images/sha256-eddacbc7e24bf8799a4ed3cdcfa50d4b88a323695ad80f317b6629883b2c2a78?context=explore
You can pull the image and get the "index digest" like this too.
docker inspect --format='{{index .RepoDigests 0}}' alpine:3.20.2

The eddacbc7e24bf8799a4ed3cdcfa50d4b88a323695ad80f317b6629883b2c2a78 is for amd64, and is the sha256 for that architecture.
Interestingly when you pull with the version and the sha256 in there it ignores the version and gets the sha256. It does no checking that the version matches the sha256.


No such element error

Thanks for your codes. I find it simple and straightforward to use.
I tried to make some adjustments to use it in a project but I faced this error:

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//label[@for="filters_detail_checkbox_trating__5"]"}

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//a[@class="nav next taLnk ui_button primary"]"}

I have attached a copy of my scripts to this.
I will appreciate your help.
Louvre Museum.zip

Hi @edgemund, I found the bug!
I try to explain it clearly, in a nutshell the structure of the TripAdvisor site changes often, at least twice a year. I suppose it's a move to make scraping scripts like this obsolete.
The solution when you find such errors is to use the "inspect" mode of your browser, to see if the name of the label or class of a button has changed, and in that case update the code!
For this time you just need to replace the string "nav next taLnk ui_button primary" with the new string "nav next ui_button primary  cx_brand_refresh_phase2".
In this way it works for me again, unfortunately I don't see the other bug for selecting the rating.
However, I advise you never to change the size of the web page that opens automatically, because the structure of the page and therefore the various buttons, links, etc. also change.
I hope I have been useful to you, bye


Complex numbers get_real(), get_imag(), to_complex

Summary
Adding support for complex scalar functions get_real(), get_imag() and to_complex().
get_real() takes in a complex number and outputs its real component, get_imag() does the same but for the imaginary component.
to_complex() takes in either 0, 1, or 2 ints or doubles and returns a complex number with its real and imaginary component set to the inputs, and any unfilled components set to 0.
Tests
Test files are available in test/unit/math/mix/fun and are named get_real_test.hpp, get_imag_test.hpp and to_complex_test.hpp
Tests can be ran with:
./runTests.py test/unit/math/mix/fun/get_real_test.hpp
./runTests.py test/unit/math/mix/fun/get_imag_test.hpp
./runTests.py test/unit/math/mix/fun/to_complex_test.hpp
Side Effects
None
Release notes
Added complex scalar functions get_real(), get_imag(), and to_complex.
Checklist

[x] Copyright holder: Nicholas DiDio
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

[x] the basic tests are passing

unit tests pass (to run, use: ./runTests.py test/unit)
header checks pass, (make test-headers)
dependencies checks pass, (make test-math-dependencies)
docs build, (make doxygen)
code passes the built in C++ standards checks (make cpplint)

[x] the code is written in idiomatic C++ and changes are documented in the doxygen

[x] the new changes are tested

So the tests for this are going to fail because it relies on Steve's apply-scalar-unary fix at https://github.com/stan-dev/math/pull/2549. I've tested both PR's together and it works. Not sure what to do about this, but it should work as soon as Steve's PR goes through.


Upgrade com.github.ekryd.sortpom:sortpom-maven-plugin 3.0.0 -> 3.0.1

This PR contains the following updates:

Package
Update
Change

com.github.ekryd.sortpom:sortpom-maven-plugin
patch
3.0.0 -> 3.0.1

[ ] If you want to rebase/retry this PR, click this checkbox.

Suggested commit message:
Upgrade sortpom-maven-plugin 3.0.0 -> 3.0.1

See:
- https://github.com/Ekryd/sortpom/wiki/Versions
- https://github.com/Ekryd/sortpom/releases/tag/sortpom-parent-3.0.1
- https://github.com/Ekryd/sortpom/compare/sortpom-parent-3.0.0...sortpom-parent-3.0.1


Import CSS/assets from node_modules

I know with the old compiler this didn't work, doubt it works with the new one, but you should be able to:
import dialogStylesHref from<EMAIL_ADDRESS>

I'm using semantic-ui-react and there are fonts for the Icon component.
I tried doing the import like this for the .ttf, .woff2, etc to be included on the assets folder. No luck.
import iconsFont from 'semantic-ui-css/themes/default/assets/fonts/icons.woff2';

export let links = () => {
  return [
      { rel: 'preload', href: iconsFont },
  ];
};

I get this error:
/Users/ .... /myProject/node_modules/semantic-ui-css/themes/default/assets/fonts/brand-icons.woff2:1
wOF2

SyntaxError: Invalid or unexpected token
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1025:15)
    at Module._compile (node:internal/modules/cjs/loader:1059:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1147:10)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/Users/javiercastro/git/web-site/build/index.js:188:37)
    at Module._compile (node:internal/modules/cjs/loader:1095:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1147:10)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at /Users/javiercastro/git/web-site/node_modules/@remix-run/serve/index.js:39:17

Only way I've found for the fonts to be where thy should:
cp ./node_modules/semantic-ui-css/themes ./public/build/_assets/

Issue still exists when i imported library, which has dependency with css-modules to be enabled during build time.
C:\code\test\feedback\node_modules@sapphire\css\components\button\button.module.css:4
.sapphire-button {
^
SyntaxError: Unexpected token '.'
at wrapSafe (internal/modules/cjs/loader.js:979:16)
at Module._compile (internal/modules/cjs/loader.js:1027:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object. (C:\code\test\feedback\node_modules@sire2-react\core\build\cjs\main.js:12:16)

this works now

@ryanflorence is things like inter-ui expected to work where you include a css which in turn includes fonts from node_modules. When trying it out the CSS includes fine but the fonts don't get copied to the assets folder.
npm add inter-ui

import intercss from "inter-ui/inter.css";

export function links() {
  return [
    { rel: "stylesheet", href: intercss },
  ];
}

Expected behavior (I think) would be that the fonts in the inter.css file would be pulled in as well.
Currently the css gets pulled in but the fonts become 404 as they are not copied into the correct assets folder

Please re open! The bug is like @tobad357 (and I) stated

Looking at the code at https://github.com/remix-run/remix/blob/a69a631cb5add72d5fb24211ab2a0be367b6f2fd/packages/remix-dev/compiler/loaders.ts#L6
Shouldn't css use the css loader instead of file loader?
That way esbuild should resolve the urls inside instead of just copying

Same bug here, getting 404 when trying to load my fonts =(

same issue here, please open

Same issue. Please re-open. Does anyone know what version can run normally? Thank you

We do not currently do any processing of CSS files. We just copy them to the build directory and fingerprint them. If the CSS you are trying to consume from a node module needs co-located fonts or some sort of pre-processing this is something you will have to do manually today. This issue should not be re-opened unless you can't import a .css file from a node module, whether it works is not the concern of this issue.
What you believe should be done to pre-process these imported css files is another discussion, and one we are happy to have, just not on this issue.

We do not currently do any processing of CSS files. We just copy them to the build directory and fingerprint them. If the CSS you are trying to consume from a node module needs co-located fonts or some sort of pre-processing this is something you will have to do manually today. This issue should not be re-opened unless you can't import a .css file from a node module, whether it works is not the concern of this issue.
What you believe should be done to pre-process these imported css files is another discussion, and one we are happy to have, just not on this issue.

could you try use react swiper in remix js? Its hard to use quite a many packages which require import it's css file from node_modules, however remix didnt helping to processing it, would you like to take a look, if we using vite js we dont have to worry about it.

Also having this same issue. Not quite sure what the resolution was here now that it was closed?

You can fetch the CSS from e.g. jsdelivr.net, the URL provided in Swiper's Get Started guide.
export const links: LinksFunction = () => [
  {
    rel: "stylesheet",
    href<EMAIL_ADDRESS>  },
];

We are currently working on supporting CSS modules.
Locking this outdated issue.
https://github.com/remix-run/remix/discussions/4631


error Undefined array key "HTTP_USER_AGENT"

Hi. I am using GLPI 10.0.3, plugin version 1.2.1.
I get a lot of error on log: sslerrorglpi.log
PHP Warning:  Undefined array key "HTTP_USER_AGENT" in C:\Web_Server\Apache24\htdocs\gl\plugins\phpsaml\setup.php on line 190

Please try this version: https://github.com/DonutsNL/phpsaml/
Hopefully we will be able to merge this version into this repo someday soon.

In this version you will be able to configure the required excludes yourself using a new php saml dropdown menu.


Cloudflare page preview for forks PRs

The cloudflare page action does not support preview deployement for forks PRs cf their doc.
So maybe switch to https://github.com/AdrianGonz97/refined-cf-pages-action

Exemple in #157


feat: support multiline commit messages within changelog

closes #372

Codecov Report

Merging #373 (c7a3349) into main (af8eb91) will decrease coverage by 0.31%.
The diff coverage is 50.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main     #373      +/-   ##
==========================================
- Coverage   80.42%   80.11%   -0.31%
==========================================
  Files          40       40
  Lines        1900     1916      +16
==========================================
+ Hits         1528     1535       +7
- Misses        277      283       +6
- Partials       95       98       +3

Files Changed
Coverage Δ

internal/config/uplift.go
95.00% <ø> (ø)

cmd/uplift/changelog.go
72.03% <40.00%> (-1.88%)
:arrow_down:

cmd/uplift/release.go
77.69% <40.00%> (-1.51%)
:arrow_down:

internal/task/changelog/changelog.go
67.66% <62.50%> (-0.17%)
:arrow_down:


fix wait logic

the countdown create logic not match that task complete and reduce count logic

thanks for your project, i found the problem when i apply it to my app,  I fixed it and you can check it and if it works you can merge it in

I think this logic is not a problem, because if it callCreateOnMainThread() == true, that the component is initialized in the main thread, and the main thread is blocked by default, so there's no need to call mNeedAwaitCount.IncrementAndGet() wait for additional jam.
However, the await() method is somewhat problematic, and I guess the problem you are experiencing is caused by the following reasons.
The cause should be this code in StartupManagerDispatcher:
    override fun notifyChildren(dependencyParent: Startup<*>, result: Any?, sortStore: StartupSortStore) {
        // immediately notify main thread,Unblock the main thread.
        if (dependencyParent.waitOnMainThread()) {
            needAwaitCount.incrementAndGet()
            awaitCountDownLatch?.countDown()
        }
        ...
    }

It should be amended to:
    override fun notifyChildren(dependencyParent: Startup<*>, result: Any?, sortStore: StartupSortStore) {
        // immediately notify main thread,Unblock the main thread.
        if (dependencyParent.waitOnMainThread() && !dependencyParent.callCreateOnMainThread()) {
            needAwaitCount.decrementAndGet()
            awaitCountDownLatch?.countDown()
        }
        ...
    }

Will this solve your problems?

I also tried to do this at first, but one thing to consider is that instead of saying that calls on the Main thread are blocked, it's possible that this task depends on the completion of an asynchronous task, and if we don't block artificially at this point, we have a problem

Thank you for your pr.


Spelling fix

Girl scout cleanup - fixing spelling mistakes and rewording sentences that use non-existing words throughout the repo

Thank you @zoekdestep for reviewing - I believe you need to get contributor rights to count as a reviewer - @fnocera can help you


Alternate versions of files

Initially requested by @rukongai in #1701

It'd be nice if we could designate a model folder, and choose have subfolders in that be variants of a model (supported, options, etc). With a lot of releases coming with a ton of variants, this would let my library stay cleaner

#35 will do this for supported/unsupported, but is there something else we could make for custom variants perhaps?

i've been messing around with manyfold again and poking around the code. I know that my use-case doesn't exactly reflect the use-case of the many
That being said, expanding on my original thoughts here - it seems recursive scanning beyond the configured folder structure is what is bothering me.
It seems that I have the folder structure set to, for example, {creator}/{modelName} for a library called figurines, I would want to have the model be at /libraries/creator/modelname with nested folders being visible inside the model view as additional files/resources, not added as additional models.
And once this "root" model folder has been established, being able to view (by filename, not render) all files in that folder would be swell.
Right now it feels like the only viable organization method for models is having flat folders for models, organized by nested tag folders.
I guess, if I had to summarize, I am hoping for a self-hosted variant of something like Thingiverse or Printables for my personal model collection.
Also - I hope I'm not coming across as nitpicky. I love what this project might represent and if I were even halfway decent at coding i'd love to contribute. Maybe in the future!

This should be possible, but it might not be obvious or particularly frictionless. I've got some documentation to write and I'll try to include scenarios like this in it.

I've been thinking on this and it seems to me a potential solution is having common_subfolders be user definable and able to be recursively scanned. I've been trying at it but haven't got it working
But that would allow you to define folders that expected by name, even nested and have it be part of the model.
I feel a big advantage here is not having to sort model files by name, allowing you to only need to worry about directory tree
Something  like
    {
      "files" => file_pattern,
      "images" => image_pattern,
      "resources" => file_pattern,
      "presupported" => file_pattern,
      "supported" => file_pattern,
      "unsupported" => file_pattern,
      "parts" => file_pattern,
      "variants" => file_pattern,
      "extras" => file_pattern,
      "1_6th_scale" => file_pattern,
      "1_9th_scale" => file_pattern,
      "1_12th_scale" => file_pattern,
      "uncut" => file_pattern
    }

would be able to match
├───1_12th_scale
│   ├───supported
│   ├───extras
│   └───uncut
├───1_6th_scale
│   ├───supported
│   ├───extras
│   └───uncut
├───1_9th_scale
│   ├───supported
│   ├───extras
│   └───uncut
└───Images

All to a single model
I'll keep poking at it and see if I can make anything work

Making common subfolders into a configurable setting is a good idea 👍🏻

👍 You can combine the subfolders, as long as there's something in the model root folder too. I do need to add the ability to merge folders that have a common but empty parent folder, I should open a ticket for that to remind me. There's already one to improve the file organisation within a model so that those subfolders are still useful.

Just want to say I found this when trying to organize my minis, and some documentation, or examples on fodler structure, and these alt versions\variants would be xtremely useful

Hey I wanted to follow up on this as it's still the primary reason that I can't use Manyfold.
To illustrate the broader appeal beyond just my personal use case - having subfolders with variants and options is a common practice with model releases by the majority of resin focused 3D artists. It would be nice to be able to download the model from the patreon/cults/wherever and upload it as is, maintaining the structure and organization of the files without having to flatten the entire release to a single folder.
For example, here is the folder structure for Shadowheart by OXO3D released July, 2024
OXO3D - 2024-07 - Shadowheart
    ├───OXO3D_Figures_Shadowheart_Renders
    │              OXO3D_Figures_Shadowheart_001.jpg
    │              OXO3D_Figures_Shadowheart_002.jpg
    │              OXO3D_Figures_Shadowheart_003.jpg
    │              OXO3D_Figures_Shadowheart_006.jpg
    │              OXO3D_Figures_Shadowheart_008.jpg
    │              OXO3D_Figures_Shadowheart_NSFW_001.jpg
    │              OXO3D_Figures_Shadowheart_NSFW_003.jpg
    │              OXO3D_Figures_Shadowheart_NSFW_004.jpg
    │              OXO3D_Figures_Shadowheart_NSFW_006.jpg
    │              OXO3D_Figures_Shadowheart_NSFW_009.jpg
    │              OXO3D_Figures_Shadowheart_NSFW_011.jpg
    │
    ├───OXO3D_Figures_Shadowheart_SFW_NSFW_Split
    │              OXO3D_Figures_Shadowheart_Base_01.stl
    │              OXO3D_Figures_Shadowheart_Base_02.stl
    │              OXO3D_Figures_Shadowheart_Base_03.stl
    │              OXO3D_Figures_Shadowheart_Base_04.stl
    │              OXO3D_Figures_Shadowheart_Hair.stl
    │              OXO3D_Figures_Shadowheart_Hand_01.stl
    │              OXO3D_Figures_Shadowheart_Head.stl
    │              OXO3D_Figures_Shadowheart_Hip.stl
    │              OXO3D_Figures_Shadowheart_NSFW_Hair.stl
    │              OXO3D_Figures_Shadowheart_NSFW_Hand_01.stl
    │              OXO3D_Figures_Shadowheart_NSFW_Hand_02.stl
    │              OXO3D_Figures_Shadowheart_NSFW_Head.stl
    │              OXO3D_Figures_Shadowheart_NSFW_Hip.stl
    │              OXO3D_Figures_Shadowheart_NSFW_Shoe_01.stl
    │              OXO3D_Figures_Shadowheart_NSFW_Shoe_02.stl
    │              OXO3D_Figures_Shadowheart_NSFW_Torso.stl
    │              OXO3D_Figures_Shadowheart_NSFW_Weapon_01.stl
    │              OXO3D_Figures_Shadowheart_NSFW_Weapon_02.stl
    │              OXO3D_Figures_Shadowheart_Shoe_01.stl
    │              OXO3D_Figures_Shadowheart_Shoe_02.stl
    │              OXO3D_Figures_Shadowheart_Torso.stl
    │              OXO3D_Figures_Shadowheart_Weapon.stl
    │              OXO3D_Figures_Shadowheart_Weapon_02.stl
    │
    ├───OXO3D_Figures_Shadowheart_SFW_NSFW_UnSplit
    │              OXO3D_Figures_Shadowheart.stl
    │              OXO3D_Figures_Shadowheart_Base.stl
    │              OXO3D_Figures_Shadowheart_NSFW.stl
    │
    └───OXO3D_Figures_Shadowheart_Support
        ├───Chitubox
        │              OXO3D_Figures_Shadowheart_Batch_01.chitubox
        │              OXO3D_Figures_Shadowheart_Batch_02.chitubox
        │              OXO3D_Figures_Shadowheart_Batch_03.chitubox
        │
        └───STL
                       OXO3D_Figures_Shadowheart_Batch_01.stl
                       OXO3D_Figures_Shadowheart_Batch_02.stl
                       OXO3D_Figures_Shadowheart_Batch_03.stl

How I envision this is that these would all be a single model, and instead of having the groups displayed on the model page by filename, it would be by subfolder. Right now if I tried to upload this release without going through and manually flattening and renaming everything, I would get 4-5 separate models.
How I think this might be achievable is through the Model Path Template.
If that path template was relative to the library root (say /libraries/Figurines) that would allow you to define a structure where the model root folder could easily be identified.
/libraries/{creator}/{model}
Everything below model at that point would be part of the same model.
I understand that this would not allow for the {tags} key but I feel like the preference between the two styles could probably be set at the library level?

How I think this might be achievable is through the Model Path Template. If that path template was relative to the library root (say /libraries/Figurines) that would allow you to define a structure where the model root folder could easily be identified.
/libraries/{creator}/{model} Everything below model at that point would be part of the same model.
I understand that this would not allow for the {tags} key but I feel like the preference between the two styles could probably be set at the library level?

I've attached a layout that I very commonly find at the end of this post.
A couple of notable features are:

One directory does not equate to one model. The zip archive is a release of a package of models.
Sometimes supported/unsupported are in different directories (see the Peacock-Hairpin-Dagger a few lines up from the bottom)
Directories with no files are often used for grouping sub-directories

And a couple of ideas:

Zip files should (optionally) be considered collections, rather than models
Directories without 3D models in them should (optionally) be considered nested collections
Only directories with 3D model files should be considered models.
It would be nice to show all files, even if they can't be previewed
Optionally consider each STL file in a directory a separate model
Empty files should not be ignored... I see creators using the filename on empty files to convey information like "alternate version pending.txt" or "model prints without supports.md"
It would be great to support for more alternate versions (supported/support-less are great, but perhaps custom alternate versions would address more use cases like cut bases, alternate poses, alternate weapons, etc.)

There are cases where having multiple of a particular alternate version happen as well... e.g. sword/mace/staff versions or heavy/light supports

Duplicate files happen, both within one zip file, and across zip files as creators reuse models in different contexts.
There needs to be a way to retroactively assemble or deconstruct models between a group of things and individual things (e.g. "these two STLs should be one model and aren't", as well as "this one model should actually be two models")
A lot of these seem to imply that manyfold needs to present some options after the zip files(s) have been uploaded,  but before the data makes it into the library.
Perhaps ditching the file structure entirely for file storage is a good idea.

Name the files on disk according to a hash, but preserve the original relative path in the DB

Allows multiple references to the same file from different models/collections

Potentially create a directory tree of symbolic links that mirrors the original file structure

Sample layout:
Purple Trail - PDF Resources/
Purple Trail - PDF Resources/Folder.jpg
Purple Trail - PDF Resources/Purple-Trail-Adventure-Hooks-Almanac.pdf
Purple Trail - PDF Resources/Purple-Trail-All-in-One.pdf
Purple Trail - PDF Resources/Purple-Trail-Arcane-Codex.pdf
Purple Trail - PDF Resources/Purple-Trail-Battlemaps/
Purple Trail - PDF Resources/Purple-Trail-Battlemaps/Dunes/
Purple Trail - PDF Resources/Purple-Trail-Battlemaps/Dunes/Dunes-Grid.jpg
Purple Trail - PDF Resources/Purple-Trail-Battlemaps/Dunes/Dunes-Print.pdf
Purple Trail - PDF Resources/Purple-Trail-Battlemaps/Dunes/Dunes.jpg
Purple Trail - PDF Resources/Purple-Trail-Battlemaps/Dunes.zip
Purple Trail - PDF Resources/Purple-Trail-Character-Sheet/
Purple Trail - PDF Resources/Purple-Trail-Character-Sheet/Purple-Trail-Character-Sheet-Letter-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Character-Sheet/Purple-Trail-Character-Sheet-Letter.pdf
Purple Trail - PDF Resources/Purple-Trail-Character-Sheet/Purple-Trail-Character-Sheet-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Character-Sheet/Purple-Trail-Character-Sheet.jpg
Purple Trail - PDF Resources/Purple-Trail-Character-Sheet/Purple-Trail-Character-Sheet.pdf
Purple Trail - PDF Resources/Purple-Trail-Cheat-Sheet/
Purple Trail - PDF Resources/Purple-Trail-Cheat-Sheet/Purple-Trail-Cheat-Sheet.pdf
Purple Trail - PDF Resources/Purple-Trail-Cheat-Sheet.pdf
Purple Trail - PDF Resources/Purple-Trail-Checkpoints.pdf
Purple Trail - PDF Resources/Purple-Trail-Culture-Anthology.pdf
Purple Trail - PDF Resources/Purple-Trail-Encounter-Generator-Table.pdf
Purple Trail - PDF Resources/Purple-Trail-Expanded-Content.pdf
Purple Trail - PDF Resources/Purple-Trail-Factions.pdf
Purple Trail - PDF Resources/Purple-Trail-Introduction.pdf
Purple Trail - PDF Resources/Purple-Trail-Mechanics.pdf
Purple Trail - PDF Resources/Purple-Trail-Monster-Hunter-Journal.pdf
Purple Trail - PDF Resources/Purple-Trail-NPC-Cards/
Purple Trail - PDF Resources/Purple-Trail-NPC-Cards/Purple-Trail-NPC-Cards-A4.pdf
Purple Trail - PDF Resources/Purple-Trail-NPC-Cards/Purple-Trail-NPC-Cards-Letter.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Adventure-Hooks-Almanac-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Arcane-Codex-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Character-Sheet-Letter-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Character-Sheet-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Checkpoints-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Culture-Anthology-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Encounter-Generator-Table-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Expanded-Content-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Factions-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Introduction-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Mechanics-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Mh-Journal-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Print-Friendly-BW/Purple-Trail-Printer.pdf
Purple Trail - PDF Resources/Purple-Trail-Region-Map/
Purple Trail - PDF Resources/Purple-Trail-Region-Map/Purple-Trail-Region-Map.jpg
Purple Trail - PDF Resources/Purple-Trail-Statblocks-Standalone/
Purple Trail - PDF Resources/Purple-Trail-Statblocks-Standalone/Ancient Purple Worm.pdf
Purple Trail - PDF Resources/Purple-Trail-Statblocks-Standalone/Ankheg.pdf
Purple Trail - PDF Resources/Purple-Trail-Statblocks-Standalone/Aya.pdf
Purple Trail - PDF Resources/Purple-Trail-Statblocks-Standalone/Cyclops.pdf
Purple Trail - PDF Resources/Purple-Trail-Statblocks-Standalone/Fire Snake.pdf
Purple Trail - PDF Resources/Purple-Trail-Tokens/
Purple Trail - PDF Resources/Purple-Trail-Tokens/One Size/
Purple Trail - PDF Resources/Purple-Trail-Tokens/One Size/Ankheg.png
Purple Trail - PDF Resources/Purple-Trail-Tokens/One Size/Aya.png
Purple Trail - PDF Resources/Purple-Trail-Tokens/One Size/Cyclops.png
Purple Trail - PDF Resources/Purple-Trail-Tokens/One Size/Fire Snake.png
Purple Trail - PDF Resources/Purple-Trail-Tokens/Sized/
Purple Trail - PDF Resources/Purple-Trail-Tokens/Sized/Ankheg.png
Purple Trail - PDF Resources/Purple-Trail-Tokens/Sized/Aya.png
Purple Trail - PDF Resources/Purple-Trail-Tokens/Sized/Cyclops.png
Purple Trail - PDF Resources/Purple-Trail-Tokens/Sized/Fire Snake.png
Bases/
Bases/Ankheg-Base-Cut.stl
Bases/Ankheg-Base.stl
Bases/Base-A.stl
Bases/Base-B.stl
Bases/Base-C.stl
Bases/Base-D.stl
Bases/Base-E.stl
Bases/Cyclops-Base-Cut.stl
Bases/Cyclops-Base.stl
Bases/Fire-Snake-Base-Cut.stl
Bases/Fire-Snake-Base.stl
Bases/Sculpted Bases.jpg
Bases/SUP_Ankheg-Base-Cut.stl
Bases/SUP_Ankheg-Base.stl
Bases/SUP_Base-A.stl
Bases/SUP_Base-B.stl
Bases/SUP_Base-C.stl
Bases/SUP_Base-D.stl
Bases/SUP_Base-E.stl
Bases/SUP_Cyclops-Base-Cut.stl
Bases/SUP_Cyclops-Base.stl
Bases/SUP_Fire-Snake-Base-Cut.stl
Bases/SUP_Fire-Snake-Base.stl
Characters/
Characters/Dragonborn Fighter - Garnsukh Tselger/
Characters/Dragonborn Fighter - Garnsukh Tselger/Dragonborn Fighter - Garnsukh Tselger.jpg
Characters/Dragonborn Fighter - Garnsukh Tselger/Dragonborn Fighter - Garnsukh Tselger.stl
Characters/Dragonborn Fighter - Garnsukh Tselger/SUP_Dragonborn Fighter - Garnsukh Tselger.stl
Characters/Genasi Barbarian - Orest/
Characters/Genasi Barbarian - Orest/Genasi Barbarian - Orest.jpg
Characters/Genasi Barbarian - Orest/Genasi Barbarian - Orest.stl
Characters/Genasi Barbarian - Orest/SUP_Genasi Barbarian - Orest.stl
Creatures/
Creatures/Ankheg/
Creatures/Ankheg/Ankheg.jpg
Creatures/Ankheg/Ankheg.stl
Creatures/Ankheg/SUP_Ankheg-Base-Cut.stl
Creatures/Ankheg/SUP_Ankheg-Base.stl
Creatures/Ankheg/SUP_Ankheg.stl
Creatures/Cyclops/
Creatures/Cyclops/Cyclops.jpg
Creatures/Cyclops/Cyclops.stl
Creatures/Cyclops/SUP_Cyclops-Base-Cut.stl
Creatures/Cyclops/SUP_Cyclops-Base.stl
Creatures/Cyclops/SUP_Cyclops.stl
Creatures/Fire Snake/
Creatures/Fire Snake/Fire Snake.jpg
Creatures/Fire Snake/Fire-Snake.stl
Creatures/Fire Snake/SUP_Fire-Snake-Base-Cut.stl
Creatures/Fire Snake/SUP_Fire-Snake-Base.stl
Creatures/Fire Snake/SUP_Fire-Snake.stl
Creatures/Purple-Worm/
Creatures/Purple-Worm/Purple Worm.jpg
Creatures/Purple-Worm/Purple-Worm-Body prints without supports.txt
Creatures/Purple-Worm/Purple-Worm-Body.stl
Creatures/Purple-Worm/Purple-Worm-Head.stl
Creatures/Purple-Worm/Purple-Worm-Tail.stl
Creatures/Purple-Worm/SUP_Purple-Worm-Head.stl
Creatures/Purple-Worm/SUP_Purple-Worm-Tail.stl
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/cards/
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/cards/Hairpin Dagger A.jpg
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/cards/Hairpin Dagger B.jpg
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/cards/Hairpin Dagger.pdf
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/Life-Size Prop - Peacock Hairpin Dagger.jpg
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/Peacock Hairpin Dagger.jpg
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/peacock-hairpin-dagger.stl
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/supportless/
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/supportless/hairpin-dagger-blade.stl
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/supportless/hairpin-dagger-bottom.stl
Lifesize-Magic-Item-Peacock-Hairpin-Dagger/Peacock-Hairpin-Dagger/supportless/hairpin-dagger-top.stl

Just want to say I found this when trying to organize my minis, and some documentation, or examples on fodler structure, and these alt versions\variants would be xtremely useful

I came into the issues looking for supported/unsupported.  I am starting manyfold with just my Resin/Mini models, because my generic FDM\STL folder is organized into categories, and manyfold doesnt like that, and there is wayyyy too much to do manually, so trying to focus on the more bespoke or paid models, and its quite a PITA


Can no longer edit Variants without an SKU

Lunar version: 0.1-rc5
Laravel Version: 9.32.0
PHP Version: 8.1.10
Database Driver & Version: mysql

Steps To Reproduce:

Mark SKU and all other identifiers as not required/unique in Product config
Enable variants
Add a variant without an SKU (or remove the autogenerated SKU if it makes one)

Expected Behaviour:
Use of an edit button/image/options for edit button
Actual Behaviour:
Edit behaviour is attached to the SKU which doesn't have to be a required field and can therefore not be present

I have this problem too. Maybe it's better add edit URL to variant thumbnail (in addition to SKU)

This should no longer be an issue in v1


Divide the detailed text in paragraphs

Hi Prabhu! Have you thought of transforming "cardDetailedText" in an object where you can order your info like:
cardDetailedText:{
paragraph1: lorempisum....,
paragraph2: new paragraph...
.
.
}
The library is really cool.

@juandeto thanks.
right now the only way to achieve something like this would be to use the custom rendering option.
custom rendering.
but this surely sounds like a very good idea as well.

@juandeto thanks.
right now the only way to achieve something like this would be to use the custom rendering option.
custom rendering.
but this surely sounds like a very good idea as well.

@juandeto with #94 changes you can split large texts into individual paragraphs

cardDetailedText will now also accept string of arrays. The array is split and placed as a separate text blocks.
   cardDetailedText: ['text1', 'text2]

please check out and let me know how that works out.

@juandeto with #94 changes you can split large texts into individual paragraphs

cardDetailedText will now also accept string of arrays. The array is split and placed as a separate text blocks.
   cardDetailedText: ['text1', 'text2]

please check out and let me know how that works out.

Great! Thanks a lot, I will test it and let you know
El dom, 17 de ene. de 2021 a la(s) 16:20, Prabhu Murthy (
<EMAIL_ADDRESS>escribió:

@juandeto https://github.com/juandeto with #94
https://github.com/prabhuignoto/react-chrono/pull/94 changes you can
split large texts into individual paragraphs

cardDetailedText will now also accept string of arrays. The array is
split and placed as a separate text blocks.
  cardDetailedText: ['text1', 'text2]

please check out and let me know how that works out.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/prabhuignoto/react-chrono/issues/92#issuecomment-761865017,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APTXO75XN2ZXVM4HUZQSTJLS2MZ7VANCNFSM4WCU2CYQ
.

Great! Thanks a lot, I will test it and let you know
El dom, 17 de ene. de 2021 a la(s) 16:20, Prabhu Murthy (
<EMAIL_ADDRESS>escribió:

@juandeto https://github.com/juandeto with #94
https://github.com/prabhuignoto/react-chrono/pull/94 changes you can
split large texts into individual paragraphs

cardDetailedText will now also accept string of arrays. The array is
split and placed as a separate text blocks.
  cardDetailedText: ['text1', 'text2]

please check out and let me know how that works out.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/prabhuignoto/react-chrono/issues/92#issuecomment-761865017,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APTXO75XN2ZXVM4HUZQSTJLS2MZ7VANCNFSM4WCU2CYQ
.


[#4677] Fix findbug issue

NPE dereference

Codecov Report

Merging #4810 into master will decrease coverage by 0.01%.
The diff coverage is 25%.

@@            Coverage Diff             @@
##           master    #4810      +/-   ##
==========================================
- Coverage   40.83%   40.82%   -0.02%
==========================================
  Files        2590     2590
  Lines       78766    78766
  Branches    10665    10665
==========================================
- Hits        32163    32155       -8
- Misses      43622    43628       +6
- Partials     2981     2983       +2

Impacted Files
Coverage Δ

...lector/handler/thrift/ThriftAgentEventHandler.java
0% <0%> (ø)
:arrow_up:

...mon/server/util/AgentEventMessageSerializerV1.java
73.91% <50%> (ø)
:arrow_up:

...p/pinpoint/rpc/client/WriteFailFutureListener.java
56.25% <0%> (-18.75%)
:arrow_down:

...r/response/DefaultResponseTimeMetricCollector.java
85.71% <0%> (-14.29%)
:arrow_down:

...pinpoint/profiler/instrument/AccessorAnalyzer.java
57.14% <0%> (-8.58%)
:arrow_down:

...rc/main/java/com/navercorp/pinpoint/test/Item.java
68.96% <0%> (-3.45%)
:arrow_down:

...pinpoint/profiler/monitor/DeadlockMonitorTask.java
18.6% <0%> (-1.17%)
:arrow_down:

...cluster/zookeeper/ZookeeperClusterDataManager.java
64.62% <0%> (-0.69%)
:arrow_down:

...point/rpc/client/DefaultPinpointClientHandler.java
73.56% <0%> (+0.95%)
:arrow_up:

...tor/metric/datasource/DefaultDataSourceMetric.java
78.12% <0%> (+3.12%)
:arrow_up:

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 a844abb...747164a. Read the comment docs.


Remove migrations debug code.

Coverage remained the same at 93.119% when pulling f472b1e4627fae72351ffac2cc12cd032ce40c9a on johngian:debug-migrations into 50da7d2daa814d54324fdf2fb9be6226d7cf89f5 on mozilla:master.

I would suggest to leave this there. It's not a bad idea to have some verbosity in our logs.


Add readthedocs config with docs requirements

Fixes #1390
https://docs.readthedocs.io/en/stable/faq.html#my-documentation-requires-additional-dependencies

Coverage remained the same at 97.076% when pulling 6cd56ed748ae169f233910d7b5d522dc8c94257d on bugfix/docs-requirements into e3dd3c9273c33565a4d7261c7e244297605c35e3 on main.

I think you need to also install the connexion package as I ticked the "Install Project" box (which is then overwritten when having a config file):

Good catch, thanks! Updated to install the package with docs extra. I also activated docs building on PRs to test the changes.

:+1:


Correction for raw affiliation Western University - Faculty of Engineering

Correction needed for raw affiliation Western University - Faculty of Engineering
raw_affiliation_name: Western University - Faculty of Engineering
new_rors: 02grkyz14
previous_rors: 05cgtjz78
works_examples: W4368232701;W4319345534;W4389495396
contact: adb77f556e4163b438de589a2bff3860:90ad512e0a7450cb @ uwo.ca

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


UX: Highlight Kubeflow and Minio as the key elements

The UX feedback I'm getting is that users are overwhelmed by the number of options in the portal. I think Kubeflow and Minio are the two most important options for 90% of users, so maybe there's a way to highlight "Get started with these two" and then leave the rest below?

Hey @blairdrummond sorry I just saw this now! I know it's not part of this current sprint, but I wanted to chime in since I noticed it.
I see what you're saying, so perhaps for the time being we could update the 3 "hot links" at the top:
Current: Kubeflow, R-Shiny, GitHub
Proposed: Kubeflow, MinIO, R-Shiny
This would elevate MinIO slightly. We're also going to add a star next to the items on the portal that are also featured in the "hot links" at the top.
These "hot links" buttons at the top function as a set of featured tools, which is similar to the "Get started" idea you're proposing but not exactly the same.
Let's start with this and see how it works out. We'll also discuss internally the idea of a more prominent "Featured/Get started" section.
What do you think?

Yep I think that's great!

Ok great! Mino has been promoted to the hot links, and GitHub got the boot. (sorry not sorry GitHub)
The star was added too, which will come in the next deployment. It was a super tiny thing to add.
Thanks again for the feedback.


Importing RefMananger's internal function and using '.' in pipes

This is in reference to the function bib_print() in report-utils.R is used in the dictionary.RMD vignette
austraits$sources %>% bib_print() %>% sprintf("- %s", .) %>% writeLines()
`bib_print <- function(bib, .opts = list(first.inits = TRUE, max.names = 1000, style="markdown") ) {
set format
oldopts <- RefManageR::BibOptions(.opts)
on.exit(RefManageR::BibOptions(oldopts))
bib %>%
RefManageR:::format.BibEntry(.sort = F) %>%
# HACK: remove some of formatting introduced in line above
# would be nicer if we could apply csl style
gsub("[] ", "", ., fixed = TRUE) %>%
gsub("\n", " ", .) %>%
gsub("  ", " ", .) %>%
gsub("DOI:", " doi: ", ., fixed = TRUE) %>%
gsub("URL:", " url: ", ., fixed = TRUE) %>%
ifelse(tolower(bib$bibtype) == "article",  gsub("In:", " ", .), .)
}`
Currently triggering a few notes.

::: is not recommended to import internal functions for other packages:
"Unexported object imported by a ':::' call: ‘RefManageR:::format.BibEntry’
See the note in ?::: about the use of this operator."

bib_print: no visible binding for global variable ‘.’
Can't importfrom rlang and use .data in place of '.' for this particular pipe https://stackoverflow.com/questions/48750221/dplyr-and-no-visible-binding-for-global-variable-note-in-package-check

Not sure if utils::globalVariables(".") is too drastic and too much of a hack to get around this note cause RMD check won't pick up other potential improper uses of '.'
What would be the best way to proceed for here?
Options:
For 1), I could just copy and paste the function from RefManageR:::format.BibEntry and add to report-utils.R
For 2), I could break up each pipe component and write them as seperate lines within the function
Want Daniel to confirm before proceeding.

Will close this for now. Using the '.' placement is something I need to revisit but we managed to bypass importing an internal function but printing something else!


Inheritance of @autoclass tagged classes (@autodict inheritance issues)

As of today inheritance is not intuitive:
from autoclass import autoclass

@autoclass
class Foo:
    def __init__(self, foo):
        pass

@autoclass
class Bar(Foo):
    def __init__(self, bar):
        pass

yields
> ValueError: @autodict can not be set on classes that are already subclasses of Mapping, and therefore already behave like dict

In order for this to work, you have to use @autoclass(autodict=False) in the  parent class. But this is not user-friendly. The proposal would be to remove this exception, and make all dict implemented methods call the corresponding super() method where appropriate

For the record, the correct way to write the above example is:
from autoclass import autoclass

@autoclass
class Foo:
    def __init__(self, foo):
        pass

@autoclass
class Bar(Foo):
    def __init__(self, bar, foo):
        super(Bar, self).__init__(foo)  # note that the constructor is optional in this case.