Giter VIP home page Giter VIP logo

warclight's People

Contributors

ato avatar depfu[bot] avatar ianmilligan1 avatar ibnesayeed avatar imgbot[bot] avatar obrienben avatar ruebot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

warclight's Issues

Document titles occasionally seem off

I suspect this is more of a solr issue than a warclight issue, but if it's generalizable I wonder if for some kinds of documents if we could override the title field to the filename?

i.e. here's a PDF from yorku.ca.

screen shot 2017-08-18 at 4 42 08 pm

Truncate fields on search results display?

Right now each record displays title, host, crawl date, content type, domain, this page links to, institution, collection name, and collection number. All but 'this page links to' or perhaps 'title' have natural limits.

In this case, a page is linking to dozens of other domains:
screen shot 2017-08-17 at 3 03 02 pm
Should we have a limit โ€“ย i.e. list the top 10, to keep from cluttering up the results page too much?

Timemaps as a service?

Discussion item from breakout session.

...more of deployed Warclight application thing, and not a Rails Engine thing.

Basic idea, since you'll potentially have a large index of web archives, it might be cool to run a timemap service from you application. Maybe this could be a Blacklight plugin? shrugs

Discussion: TimeTravel API is unreliable and should not be used

The TimeTravel API which is used in this method to create a reply URL link is unreliable.

This thread on the Memento Development list, started in November 2018, raised the issue initially. The recent TravisCI test runs have identified that the issue has now cascaded to our project, which has been raised in the mailing list thread.

So far I believe that we have two options:

  1. Remove the functionality until the problem is fixed.
  2. Use another service, which ultimately means running and maintaining our own service for this functionality.

Change field searches to use fields instead of handlers

If we do something similar to what @anjackson did in this commit, we'd leave less of a burden on the implementer to setup a custom solrconfig.xml like we ship here, and if they already have a Solr index two setup with the same or similar schema.xml that webarchive-discovery ships, it would be an easier drop-in.

config.add_search_field 'title', label: 'Title' do |field|
field.qt = 'title_search'
end
config.add_search_field 'content', label: 'Content' do |field|
field.qt = 'content_search'
end
config.add_search_field 'url', label: 'URL' do |field|
field.qt = 'url_search'
end
config.add_search_field 'host', label: 'Host' do |field|
field.qt = 'host_search'
end

Less things to maintain?

@anjackson @ianmilligan1 let me know what you think.

Location of Wayback Machine URL

As discussed, we should have a Wayback URL directly accessible from the search results page (I know the trick is what Wayback URL so that's a separate issue).

Here's a record:
screen shot 2017-08-17 at 3 09 52 pm

Should the Wayback URL or link?

  • be directly below the title as a separate field?
  • be included in the title somehow (a link next to it or something?)
  • an icon somewhere?

Getting Started Documentation

Currently, the only documentation is the README file which has almost no information about what this tool does. I think there should be enough getting started material in the README that encourages people to try it out or they can know what to expect when they run the service.

Change resourcename type from text_general to string

I noticed that the resourcename field has a type of text_general after this commit. Since it is has a type of text_general it is tokenized, which makes faceting worthless.

See "Filename" facet in the demo:
screenshot from 2017-09-12 22-23-02

My question then is, should we change this to string? If we do we can have a "Filename" facet. However, that might, or more likely will, have downstream repercussions for webarchive-discovery that will force re-indexing.

My goal with warclight has been align our schema.xml and solrconfig.xml with webarchive-discovery so that doesn't need to happen since any potential warclight user who is already a webarchive-discovery user will most likely have a very large index, and re-indexing is probably a non-starter.

That said, could we create a copyField for this? Or is there some other Solr magic we could lean on?

...or do we even care about faceting on "Filename"?

@ianmilligan1 @anjackson @tokee I'd love to have your thoughts on this ๐Ÿ˜„

replay_link -- Rails/TimeZone: Do not use Time.parse.strftime without zone.

Currently we're ignoring this in Rubocop. We shouldn't.

Offenses:

app/models/concerns/warclight/solr_document.rb:12:32: C: Rails/TimeZone: Do not use Time.parse.strftime without zone. Use one of Time.zone.parse.strftime, Time.current, Time.parse.strftime.in_time_zone, Time.parse.strftime.utc, Time.parse.strftime.getlocal, Time.parse.strftime.iso8601, Time.parse.strftime.jisx0301, Time.parse.strftime.rfc3339, Time.parse.strftime.to_i, Time.parse.strftime.to_f instead.
      time_travel_time = (Time.parse(first(:crawl_date)).strftime time_travel_time_format).to_s

Wayback/replay links

Should we be providing a replay link in the view?

I don't think we can do this out of the box in Warclight since we can't know what replay system folks will be using; archive.org Wayback, Archive-It Waybac, local Wayback, PyWB, etc? Maybe we should make this a documentation issues? Say it is possible, and give an example of doing it?

Usability of Facet Links

I have started using Web Archives for some paper research and I was not quick to realize that the "+" was the appropriate link for setting a filter.

This was for a search for "prorogue" with a desired filter for 2008.

I wanted to click on the date itself and/or the number of entries.

I realize that this is probably a BlackLight thing, but it might be worth considering the alteration in the case of Web Archives because dates, formats etc. aren't as thick with meaning as other examples I've seen around (e.g. subject headings etc.).

Update conf to handle large links_hosts

request: http://192.168.32.36:8983/solr/utoronto_shard5_replica_n12/update?update.distrib=TOLEADER&distrib.from=http%3A%2F%2F192.168.32.35%3A8983%2Fsolr%2Futoronto_shard5_replica_n11%2F&wt=javabin&version=2
Remote error message: Exception writing document id sha1:4I2XUV4FTHDJH6TH5FJOR7D2KC7W4FIR/txMrhuN6kFGPs3zkjFkAhQ== to the index; possible analysis error: Document contains at least one immense term in field="links_hosts" (whose UTF8 encoding is longer than the max length 32766), all of which were skipped.  Please correct the analyzer to not produce such terms.  The prefix of the first immense term is: '[98, 97, 110, 101, 115, 45, 97, 108, 108, 111, 116, 109, 101, 110, 116, 115, -17, -65, -67, -17, -65, -67, -17, -65, -67, -17, -65, -67, -17, -65]...', original message: bytes can be at most 32766 in length; got 1055104. Perhaps the document has an indexed string field (solr.StrField) which is too large

Setup Solr fields

As of d9920a7 bundle exec rake warclight:server yields:

RSolr::Error::Http - 400 Bad Request Error: {"responseHeader":{"status":400,"QTime":3,"params":{"facet.query":["pub_date:[2012 TO *]","pub_date:[2007 TO *]","pub_date:[1992 TO *]"],"f.subject_topic_facet.facet.limit":"21","facet.field":["format","{!ex=pub_date_single}pub_date","subject_topic_facet","language_facet","lc_1letter_facet","subject_geo_facet","subject_era_facet"],"facet.pivot":"format,language_facet","sort":"score desc, pub_date_sort desc, title_sort asc","rows":"10","facet":"true","wt":"json","f.language_facet.facet.limit":"11"}},"error":{"metadata":["error-class","org.apache.solr.common.SolrException","root-error-class","org.apache.solr.common.SolrException"],"msg":"sort param field can't be found: pub_date_sort","code":400}} URI: http://127.0.0.1:8983/solr/blacklight-core/select?wt=json&facet.field=format&facet.field=%7B%21ex%3Dpub_date_single%7Dpub_date&facet.field=subject_topic_facet&facet.field=language_facet&facet.field=lc_1letter_facet&facet.field=subject_geo_facet&facet.field=subject_era_facet&facet.query=pub_date%3A%5B2012+TO+*%5D&facet.query=pub_date%3A%5B2007+TO+*%5D&facet.query=pub_date%3A%5B1992+TO+*%5D&facet.pivot=format%2Clanguage_facet&&&rows=10&facet=true&f.subject_topic_facet.facet.limit=21&f.language_facet.facet.limit=11&sort=score+desc%2C+pub_date_sort+desc%2C+title_sort+asc Backtrace: /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rsolr-2.0.2/lib/rsolr/client.rb:195:in `rescue in execute' /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rsolr-2.0.2/lib/rsolr/client.rb:185:in `execute' /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rsolr-2.0.2/lib/rsolr/client.rb:180:in `send_and_receive' /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/bundler/gems/blacklight-8160d7d61143/lib/blacklight/solr/repository.rb:38:in `block in send_and_receive' /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.1.3/lib/active_support/benchmarkable.rb:41:in `block in benchmark' /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.1.3/lib/active_support/core_ext/benchmark.rb:12:in `block in ms' /home/nruest/.rbenv/versions/2.4.0/lib/ruby/2.4.0/benchmark.rb:308:in `realtime' /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.1.3/lib/active_support/core_ext/benchmark.rb:12:in `ms' /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.1.3/lib/active_support/benchmarkable.rb:41:in `benchmark' /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/bundler/gems/blacklight-8160d7d61143/lib/blacklight/solr/repository.rb:36:in `send_and_receive' /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/bundler/gems/blacklight-8160d7d61143/lib/blacklight/solr/repository.rb:22:in `search'

I think it's time to start setting up the default Solr fields for warclight.

Trend Diagram

Title (Goal) Trend Diagram
Primary Actor Researcher
Scope Access
Level Medium to High
Story Similar to the UKWA's Shine Interface, this supports the discovery and exploration of changing concepts and trends over time. A user might be interested in the relative frequency of a given term: i.e. "Aboriginal" or "public transportation" across a collection, or across specific domains or content-types. It should support various solr facets. i.e. "public transportation" in domain:liberal.ca or links-to:liberal.ca. While open to misinterpretation due to underlying data, it's an important access feature that really engages users (as our media experience with [WebArchives.ca)(http://webarchives.ca/) showed, and as I think the UKWA can attest!)

Example from SHINE (WebArchives.ca):

  • Here's "public transportation" from three Canadian political parties, where you can see how attention to urban issues changed under various leaders (i.e. the Liberals under Dion had an urban agenda; it disappeared during Ignatieff)
    screen shot 2017-08-23 at 11 19 50 am

Refactor replay_link (Assignment Branch Condition size)

Currently we're ignoring this in Rubocop. We shouldn't.

Offenses:

app/models/concerns/warclight/solr_document.rb:9:5: C: Metrics/AbcSize: Assignment Branch Condition size for replay_link is too high. [20.12/15]
    def replay_link

Advanced Search

Title (Goal) Advanced Search
Primary Actor user
Scope access
Level High
Story This again borrows from UKWA Shine as we seek to bring functionality of Blacklight up to their platform! Researchers may want functionality beyond the simple faceted search provided on the main page of Warclight. For example, a user may want to find mentions of "Twitter" in sites excluding "Twitter.com," or may want to provide more granular date ranges ("public transportation" in July and August 2007, rather than just the year itself), or they may want to find pages that contain multiple words within x words of each other. The user would be overwhelmed if all the facets were provided in the main search, but they may want more granularity in an advanced search.

Word Proximity:
One common example we used on WebArchives.ca was the word proximity. We searched for the word "Harper" and the word "fascist" within 25 words of each other, as a way to begin to find sites that may have used extreme rhetoric with the Conservative government. This allowed us to find Green Party blogs that characterized the Conservative government this way.

Here is the example from SHINE:

screen shot 2017-08-23 at 11 28 45 am

Granularity:
Right now in the main page, here are the list of facets for date for example:

screen shot 2017-08-23 at 11 29 24 am

For many users, this is enough! But people may want to use only a few months, or exclude certain date ranges (say if a crawl was corrupted, or if they were overwhelmed by a particular event and wanted to ignore it). It would be good to have date range search like so (again borrowing from Shine):

screen shot 2017-08-23 at 11 30 08 am

Could not find generator 'warclight:install'

This comes up during bundle exec rake

Could not find generator 'warclight:install'. Maybe you meant 'blacklight:install', 'devise:install' or 'rspec:install'
Run `rails generate --help` for more options.

Does not install with template file

I don't think this is an environment issue. I'm using a clean gemset with rvm on Ubuntu 16.04.

installing with rails new warclight -m https://raw.githubusercontent.com/archivesunleashed/warclight/master/template.rb
There doesn't seem to be any install errors. solr_wrapper and rails server start, but browsing gets:
Sprockets::FileNotFound in Catalog#index

couldn't find file 'blacklight/core' with type 'application/javascript'
Checked in these paths:
/home/greg/warclight/app/assets/config
/home/greg/warclight/app/assets/images
/home/greg/warclight/app/assets/javascripts
/home/greg/warclight/app/assets/stylesheets
/home/greg/.rvm/gems/ruby-2.4.3@warclight/gems/jquery-rails-4.3.3/vendor/assets/javascripts
...

The two blacklight gems are in the gemfile from github and are listed during bundle install. I also have things like config/blacklight.yml

Tried with Rails 2.0.latest, 5.1.6 and 5.1.2. I wanted 5.1.2 somewhere, but even doing rails new 5.1.2 updated rails to 5.1.6 at some point in the template file.

Failure/Error: Cabybara.javascript_driver = :poltergeist

An error occurred while loading ./spec/warclight_spec.rb.
Failure/Error: Cabybara.javascript_driver = :poltergeist

NameError:
  uninitialized constant Cabybara
# ./spec/spec_helper.rb:17:in `<top (required)>'
# ./spec/warclight_spec.rb:3:in `require'
# ./spec/warclight_spec.rb:3:in `<top (required)>'
No examples found.

Finished in 0.00023 seconds (files took 1.39 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

Coverage report generated for RSpec to /home/nruest/git/rails_engines/warclight/coverage. 9 / 9 LOC (100.0%) covered.
/home/nruest/.rbenv/versions/2.4.0/bin/ruby -I/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rspec-core-3.6.0/lib:/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rspec-support-3.6.0/lib /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rspec-core-3.6.0/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb failed

Failure/Error: require 'rpsec/rails'

An error occurred while loading ./spec/warclight_spec.rb.

Failure/Error: require 'rpsec/rails'

LoadError:

  cannot load such file -- rpsec/rails

# ./vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `require'

# ./vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `block in require'

# ./vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:258:in `load_dependency'

# ./vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `require'

# ./spec/spec_helper.rb:14:in `<top (required)>'

# ./spec/warclight_spec.rb:3:in `require'

# ./spec/warclight_spec.rb:3:in `<top (required)>'

No examples found.

Live status code check

Would it be worth adding a field that displays the current http status code for a url in the item's view? Might be useful to know if the url is at least a 200 OK, or 404 NOT FOUND.

Codecov doesn't work

The Codecov setup using the example repo doesn't work. It results in the error pasted below, and has been removed as of c3d23f9. We should get it back in, and this issue is meant to take care of that.

/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:85:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'codecov'. (Bundler::GemRequireError)
Gem Load Error is: uninitialized constant SimpleCov
Did you mean?  SimpleDelegator
Backtrace for gem load error is:
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/codecov-0.1.10/lib/codecov.rb:5:in `<top (required)>'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:82:in `require'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:82:in `block (2 levels) in require'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:77:in `each'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:77:in `block in require'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:66:in `each'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:66:in `require'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler.rb:108:in `require'
/home/nruest/git/rails_engines/warclight/.internal_test_app/config/application.rb:7:in `<top (required)>'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/command/actions.rb:15:in `require'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/command/actions.rb:15:in `require_application_and_environment!'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/commands/generate/generate_command.rb:8:in `help'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/commands/generate/generate_command.rb:17:in `perform'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/command/base.rb:63:in `perform'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/command.rb:44:in `invoke'
/home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/commands.rb:16:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Bundler Error Backtrace:
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:81:in `block (2 levels) in require'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:77:in `each'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:77:in `block in require'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:66:in `each'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler/runtime.rb:66:in `require'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.15.3/lib/bundler.rb:108:in `require'
	from /home/nruest/git/rails_engines/warclight/.internal_test_app/config/application.rb:7:in `<top (required)>'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/command/actions.rb:15:in `require'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/command/actions.rb:15:in `require_application_and_environment!'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/commands/generate/generate_command.rb:8:in `help'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/commands/generate/generate_command.rb:17:in `perform'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/command/base.rb:63:in `perform'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/command.rb:44:in `invoke'
	from /home/nruest/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-5.1.3/lib/rails/commands.rb:16:in `<top (required)>'
	from bin/rails:4:in `require'
	from bin/rails:4:in `<main>'
rake aborted!
EngineCart failed on with: pid 3885 exit 1
/home/nruest/.rbenv/versions/2.4.0/bin/bundle:22:in `load'
/home/nruest/.rbenv/versions/2.4.0/bin/bundle:22:in `<main>'
Tasks: TOP => default => ci => warclight:generate => engine_cart:generate
(See full trace by running task with --trace)

Dependencies problem: warclight was resolved to 0.8.3, which depends on rails (~> 5.0)

When I'm trying to install WARCLight following the documentation (rails new tolight -m https://raw.githubusercontent.com/archivesunleashed/warclight/master/template.rb), the installation stops with the following error message:

Resolving dependencies...
Bundler could not find compatible versions for gem "rails":
  In Gemfile:
    rails (~> 6.0.2, >= 6.0.2.1)

    warclight was resolved to 0.8.3, which depends on
      rails (~> 5.0)

I don't know if it is a bug, or if I'm missing something obvious. But can you tell me how to solve this?

Thanks in advance!

Your Gemfile lists the gem...

Your Gemfile lists the gem warclight (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem bundler (~> 1.14) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem codecov (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem engine_cart (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem mocha (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem poltergeist (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem rake (~> 12.0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem rspec-rails (~> 3.0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem rubocop (~> 0.48.1) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem rubocop-rspec (~> 1.15.0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem simplecov (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem solr_wrapper (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.