Commit graph

47 commits

Author SHA1 Message Date
Armin
8b8d5ec9ca TESTS: Improve Gradle Test Configuration
* `clean` actually cleans all dynamically created files, in particular it now properly cleans the generated Gemfile so
that changes to the Gemfile.template reflect in a rerun of `bundler`
* `rubyTests` and `test` are now one-off and will automatically bootstrap JRuby and Gems required by the tests if necessary
* Fixed Readme to document the now much simpler test targets
* All rake tasks remain unchanged and still work exactly as they did before

Fixes #8583
2017-11-06 18:34:47 +00:00
Armin
2037f5b031 MINOR: Removed dead RBX reference
Fixes #8526
2017-10-25 10:51:14 +00:00
Pier-Hugues Pellerin
7b09be4ead Bootstrap JRuby using gradle
Instead of using rake to bootstrap we are slowly moving part of our
infra to gradle this is the first step taken, I didn't change the calls,
I just made the `rake bootstrap` call the `gradle bootstrap`

Closes: #8234

Fixes #8238
2017-09-18 14:32:10 +00:00
Colin Surprenant
5d8c79ad4f add jruby-runtime-override in versions.yml, update jruby version to 9.1.13.0, relax jruby-ssl version to >= 0.9.20
add option for different jruby runtime version

relax jruby-ssl version to >= 0.9.20

rename jruby-runtime to jruby-runtime-override and add sha1 IGNORE option

use JRuby released version of 9.1.13.0
2017-09-07 12:17:32 -04:00
Pier-Hugues Pellerin
6a4766a01f Centralize the JRuby version
We have multiple places to declare the jruby version, this commit
centralize everything into the `version.yml` file. This is now used by
the ruby part and the gradle build file to correctly fetch the jruby
library.

Fixes #7434
2017-06-13 15:44:31 +00:00
Pier-Hugues Pellerin
7dcf9ad763 Update to JRuby 9.1.10.0
Update from 9.1.9.0 to 9.1.10.0

Fixes #7425
2017-06-13 12:44:00 +00:00
Pier-Hugues Pellerin
76286b4f0e use jruby 9.1.9.0
Work done by @guyboertje and @ph

Since JRuby 1.7.25 is now EOL we are migrating Logstash to use JRuby 9k and JDK8 only,
Not much needed updating to make this work, its was mostly a drop in replacement from the previous version.

The major point was the change in the implementation of Time in JRuby, JRuby now use `java.time`
instead of joda time, this allow JRuby to have nanoseconds precision on time object.
2017-06-12 12:35:10 -04:00
Colin Surprenant
5de3ce40d1 upgrade to JRuby 1.7.25 and required jruby-openssl 0.9.16 to match JRuby 2016-04-20 14:04:53 -04:00
Colin Surprenant
3862514388 revert to jruby 1.7.23 for regex regression 2016-04-04 14:37:38 -04:00
Pier-Hugues Pellerin
f10ed19457 Upgrade to JRuby 1.7.24
This release fix the following problems we have:
- File.stat on 32 bits JVM on windows https://github.com/logstash-plugins/logstash-input-file/issues/82
- Annoying io/console warning on Windows https://github.com/elastic/logstash/issues/3087

Full changelog http://jruby.org/2016/01/20/jruby-1-7-24.html

Fixes #4541
2016-01-21 16:10:31 +00:00
Pere Urbon-Bayes
245319e9b8 update jruby to last 1.7.23 release
Fixes #4260
2015-11-25 10:04:04 +00:00
Suyog Rao
568231816e Update ot JRuby 1.7.22
Fixes #3835
2015-09-02 20:54:50 +00:00
Colin Surprenant
827fc6d418 update to jruby-1.7.20 and cleanup legacy patches 2015-05-25 16:51:32 -04:00
Pere Urbon-Bayes
a84387da68 make the extracting lines for JRUBY optional throw using the DEBUG env variable
Fixes #3251
2015-05-15 13:09:22 +00:00
Colin Surprenant
7a1ec64c23 use :build dependencies
fix octokit dep

fixes #3171
2015-05-06 08:27:57 -04:00
Colin Surprenant
48bcc5b74d cleanup dependencies and rely on logstash-core gem
remove unused load path

use either local core lib dir or logstash-core gem

include spec in logstash-core

do not include lib, spec and locales dirs in package root

environment bootstrapping in lib/bootstrap.rb

added comments

move pluginmanager out of logstash-core

kafla installation solved by pluginmanager refactor

refactor bootstrap code

refactor shell scripts to simplify and DRY, indirect rspec command to our ruby launcher

add bin/rspec

cut by half the bin/plugin and bin/rspec startup time

fix drip context

use printf instead of tr

updated Windows bin scripts

missing gemspec in gemspec

use gem instead of gemspec so our plugin manager can correctly install logstash-core

generate packages including locally built logstash-core gem

move jenkins developmnent dependencies into Gemfile, they do not belong in logstash-core

path leftover

clean help agent help usage message and remore rspec in available command

comments cosmetics

update Bundler dependency, all recent testing have been made with 1.9.4

updated .lock file with regard to updated Gemfile

cleanup gemspec, Gemfile and regen .lock file

added progress output

avoid dual require on version

closes #3096
2015-05-04 18:17:22 -04:00
Colin Surprenant
b4c3d1ef33 upgrade jruby to 1.7.19
Fixes #3066
2015-04-21 15:44:35 +00:00
Colin Surprenant
ae17b4160d refactored all gem/bundler code into logstash/bundler.rb and moved patches into logstash/patches
require bundler/cli to expose expectations classes
2015-04-16 17:34:51 +02:00
Aaron Mildenstein
3986158bac First pass at cleaning out logstash web
All internal references, flags, kibana, vendor, everything must go!

If it referenced kibana or logstash-web, it is deprecated, and removed!

Operators are standing by...

Fixes #2661
2015-02-20 22:53:18 +00:00
Pier-Hugues Pellerin
9e7d6204a5 plugins/bundler refactor
squashed 113 commits by @ph, @colinsurprenant, @jordansissel, @purbon, @jsvd

cleaning the environment.rb

initial work

remove multiples polyglot

force to load rubygems

notice

point to one config

update lock

bootstrap will package the standard application until we have the plugin manager on top of the gemfile

add the gem path to find bundler

fixing dependencies

add gemfiles and bundle

comment platform requiremments in the gemfile

Set `Gem.paths = ...` to the GEM_HOME

Without this, `bin/logstash` will error:

    LoadError: no such file to load -- bundler
         require at org/jruby/RubyKernel.java:1071
         require at C:/Users/jls/Documents/GitHub/logstash/vendor/jruby/lib/ruby/shared/rubygems/core_ext/kernel_require
.rb:55
         set_gem_paths! at C:/Users/jls/Documents/GitHub/logstash/lib/logstash/environment.rb:64
         (root) at C:\Users\jls\Documents\GitHub\logstash\lib\logstash\runner.rb:8

Patch JRuby's jar_installer.rb with a newer version

jar-dependencies is shipped by default with JRuby. However, the version
it ships with has a bug, and despite upgrading jar-dependencies to
0.1.7, which has the fix, JRuby continues to load the "shipped" version
which has a bug.

This patch will patch JRuby by copying in our own jar_installer.rb from
jar-dependencies master, This patching occurs while unpacking JRuby just
after `vendor:jruby`.

The jar_installer.rb is MIT-licensed and no changes were made.

Add `test:plugins` to test all installed plugins

Tell rspec to do the wildcards instead of trying to make the shell do it.

This fixes test runs on Windows (which doesn't do wildcards like this).
The solution was to tell RSpec to look for all files matching a certain path pattern
within the GEM_HOME.

do not run bundle install twice for test:plugins

Gemfile manipulation classes

Gemfile now in root

install POC with new Gemfile classes

specs for the Gemfile classes

header, some bug fixes

spec header

WIP pluginmanager refactor

generated format

updated .lock

unused file

removed --proxy option

fail elegantly

initial support for update

refactor invoke_bundler, debug output

removed old .lock file

no plugin Gemfile

use clamp error handling

reenable list, some cleanups

support for more finders

refactored using new finders

refactor using is_installed_plugin? and some cleanups

verify valid plugin and update all now only update plugins not all gems

support multiple plugins argument, --force option to bypass validation

list only explicitly installed plugins by default, --all option to include dependencies

support multiple plugins argument

renamed all_installed_plugins to all_installed_plugins_gem_specs and return specs, added comments

remove then

update_gem bug, comments

moved gems as development dependencies

updated .lock file

support for :without

--development option, better output feedback, cleanups

abort when no plugins

cosmetic

param fix, cleanups

removed deprecated .lock files

remove deprecated bundler_install_command and struggling with set_gem_paths

refactored all bundler stuff into LogStash::Bundler

rakelib refactor

refactored bundler code

Bundler.real_fuckin_reset

real_fuckin_reset is now reset_settings, removed unnecessary resetings, cleanups

duplicate plugins requirements merging

cleanups

added vendor:rake, cleanups

broke test tasks into 2 steps, first invoke install then test

rake task name fix

proper error exit code

Freezing the jar-dependencies, ruby-maven, tools

set gem paths on error

renamed TEST_PLUGINS to CORE_PLUGINS, added comments

replace test by core, cleanups

DRYied test tasks

missing gemspec

fixed output

correct image build for artifacts

removed deprecated Gemfiles

fix update with multiple plugins arguments

fix update with multiple plugins arguments

remove deprecated code

implicit begin, explicit block

spec for LogStash::Bundler

remove explit require of rubygems

renamed Environment.set_gem_paths! to bundler_setup!

rename Dsl to DSL

respect to_s contract and return empty string not nil

rename DSL.parse gemfile argument to gemfile_content

better error message

renamed --force to --[no-]verify

refactored exit error handling

use explicit array items in iterators

fix --development switch validation, cleaned bundler_options hash init

renamed is_xxx? methods to xxx?

use direct method call on collection

removed double negative, typo

move maven tools monkey patch into maven_tools_patch.rb

renamed build-image to prepare

fix forgotten argument name change

namespace cleanups

spec files glob pattern

cleanup

cleanup

cleanup

Fix the file-dependencies version to 0.1.5 to fix path issues on windows

monkeypatch Rubygems to silence ffi warning

list all plugin gems by default, new options

adding rake task to get faster feedback loop on windows

refactor bat scripts

Use an unreleased filedependencies gem and skip installing drupal

bump file-dependencies

use the released gem of file-dependencies

Add a set of scripts that simplify:   * The necessary setup for the CI test to be executed.   * The actuall CI test execution, having a different scripts for each     different workflow. This makes the test execution simpler and standard, so changes in internal task don't need big changes in the CI config. It also documents and makes easy for developers to run the tests.

Fixes #2640

refactored test to not depend on STDOUT

create a .rspec file to pass some options used while the code is in the testing environment

add coveralls and simplecov as a development dependencies so we can run coverage tests

remove unnecessary .bundle directory from the artifact

In a release, the .bundle/config has a BUNDLE_PATH setting that can
interfere by misleading the plugin manager into not seeing the
vendor/bundle path.

Fixes #2647

Fixes #2475
2015-02-20 17:31:43 +00:00
Pere Urbon-Bayes
002104f3c8 Added review comments and improvements
fix the logstash_gem_path

added some love from @jsvd comments

added an LS_ENV variable that if set to test it install the plugin dependencies when running the plugin:install-all rake task2

made the vendor:deps task has a more concret behaviour and proper naming

cleanup the all plugins install to only do the installation

added some code to fetch dependencies throw some gemcode within the gemfile as @electrical proposed

Revert "added some code to fetch dependencies throw some gemcode within the gemfile as @electrical proposed"

This reverts commit 20c3243485129c388d1da4ac930a479f017e0d99.

fix a path on the run all plugins test rake task

Fixes #2371
2015-01-21 16:47:26 +00:00
Pere Urbon-Bayes
6e63f6c6b2 added way to add development dependencies to a gemfile and then rerun it
Fixes #2371
2015-01-21 16:47:26 +00:00
Pere Urbon-Bayes
3472fabb3a move the specs cleaning for logstash plugins to packaging time
Fixes #2285
2015-01-05 15:50:15 +00:00
Pere Urbon-Bayes
ab0a654be8 add code to remove files within gems after bundler gets call
Fixes #2285
2015-01-05 15:50:15 +00:00
Pere Urbon-Bayes
2ec759a676 rafactor the jruby exclude filters plus add the rdoc shared into the list
Fixes #2285
2015-01-05 15:50:15 +00:00
Pere Urbon-Bayes
05a097f853 Make sure the vendorized jruby only have 1.9 libs, so no extra space is used. Also make sure the jruby is run in 1.9 mode.
Fixes #2285
2015-01-05 15:50:15 +00:00
wiibaa
395cb7563b Update for windows to execute rake bootstrap and bin\logstash.bat
Fixes #2085
2014-12-22 21:46:25 +00:00
Pier-Hugues Pellerin
738e0b59eb Removing the gembag and the download of the vendored files since the logic was moved into their specific gems.
Fixes #2272
2014-12-19 23:34:31 +00:00
Pere Urbon-Bayes
d63e0ec9eb make sure the bundler task is just used once while bootstraping tests
Fixes #2237
2014-12-17 17:31:32 +00:00
Pere Urbon-Bayes
93aadb4d4c Make the test plugins install throw bundler, so we don't have to install them every time we run the test (it makes the thing slow). Refactor also the bundler install task into a single one, making calls to it when necessary.
Fixes #2237
2014-12-17 17:31:32 +00:00
Colin Surprenant
0a130cc5ef add Bundler.reset! method which fixes the .lock file updates
Fixes #2231
2014-12-15 19:52:11 +00:00
Colin Surprenant
9ad3384377 removed coveralls dev dependency, more .bundle dir cleanup, install without parameter fix
Fixes #2203
2014-12-10 23:48:17 +00:00
Colin Surprenant
20393d8ed5 correclty reset bundler, disabled multiple jobs, removed .done file stuff
Fixes #2203
2014-12-10 23:48:17 +00:00
Colin Surprenant
aa70b40862 refactor to use single gem dir vendor/bundle, use Bundler::CLI, .lock files naming
Fixes #2203
2014-12-10 23:48:17 +00:00
Colin Surprenant
288cb1fc05 gem paths settings fix & refactor
Fixes #2203
2014-12-10 23:48:17 +00:00
Pier-Hugues Pellerin
00899fc411 Adding bootstrap gem to the gem home
Fixes #2203
2014-12-10 23:48:16 +00:00
Joao Duarte
f77c08086b remove explicit references to ruby implementation and version
Fixes #2184
2014-12-05 19:42:16 +00:00
Joao Duarte
d6beaccc0c reinstate standalone flag and remove .bundle in vendor task
Fixes #2184
2014-12-05 19:42:16 +00:00
Joao Duarte
68db6b4aaf set correct env in bootstrap to avoid dup gems
Fixes #2171
2014-12-04 17:09:56 +00:00
Joao Duarte
14023618b4 bump kibana to 3.1.2
Fixes #2059
2014-11-11 17:50:15 +00:00
Pier-Hugues Pellerin
c92a2ccfcb Rake way of deleting files
Fixes #1981
2014-11-11 06:32:28 +00:00
Pier-Hugues Pellerin
d33fef90e4 Added a task to clean the vendor directory
Fixes #1981
2014-11-11 06:32:28 +00:00
Jordan Sissel
cf2800867a Remove some vendor tasks from vendor:all
kafka, geoip, elasticsearch, and collectd moved into separate plugins

Fixes #1995
2014-11-04 19:23:42 +00:00
Colin Surprenant
ec699e1f84 added rake vendor:force:gems option for forcing a bundle install
Fixes #1952
2014-11-04 19:03:02 +00:00
Richard Pijnenburg
23d6f52ccf Add option to use a local jruby version instead of the vendored one
If we want to test against custom Jruby versions we need to ensure we use the correct jruby binary
Like what we can do with USE_RUBY=1 ./bin/logstash to use the local ruby binary we can do the same with the rake bootstrap job

Use ruby instead of jruby as binary in case we try out something else then jruby

Fixing a few issues with the build process

- Fix a very very very weird issue where the Gem::LoadError was being passed down
- Adhere to the USE_RUBY=1 logic to use the local ruby binary

Use if instead unless

Move require's to top of the file to avoid issues
2014-10-24 15:36:02 -04:00
Jordan Sissel
27a4fe9553 Don't try to load bundler/cli anymore since we don't use it
This should help incorrectly installing bundler when it isn't present.

Fixes #1940
2014-10-22 20:04:01 +00:00
Jordan Sissel
920a9e9362 Refactor build tooling to use Ruby
The new way to build is using 'rake' and not 'make'.

For some some attempt at compatibility, any 'make' invocation will
invoke rake. `make foo` will invoke `rake foo`.

This is for #1640

Major changes:
* rake is used instead of make. This allows us to more easily improve,
  debug, and test the build tooling.
* The build process can be bootstrapped from any Ruby that has
  Rake available. Bootstrapping rake is automatic will download JRuby and
  re-execute itself under JRuby.
* rpm and deb packages no longer list any java as dependencies. This
  is the result of user discomfort and discussions which concluded
  that there is no good way to "depend" on Java via rpm or deb.

Internal changes:
* Vendoring paths are project-based. Each vendor directory is now
  specific as vendor/<project>/... For example, JRuby is dumped into
  vendor/jruby/...

Other changes:

* We don't use jruby-complete anymore. We now use bin/jruby as the entry point.
  This improves the startup time of Logstash on my laptop by approximately
  1.5 seconds (~25% speedup of startup time). Testing `bin/logstash
  version` speed; 5 runs each:

  * Before patch: 7.27 7.55 7.26 7.42 7.47
  * After patch: 5.54 5.97 5.67 5.58 5.54

Smaller changes:
- removed 'env' subcommand
- Remove 'deps' subcommand. Replaced by 'rake vendor:all'
- Add gem_home method for this platform's GEM_HOME
- .travis.yml removed because we haven't used Travis in a long time.
- bin/logstash exits nonzero with a useful message if JRuby can't be found.

Notes:

Invoke bundler via system() call instead of Bundler::CLI.
After some discussion in #bundler on freenode (very helpful!) on how
to do what we need to do with bundler, I was encouraged to not use the
bundler api from ruby, so system() it is.

Patch slightly modified to fit the new model of packaging (ruby instead
of shell invocation), but original author is obazoud in #1008.

Richard Pijnenburg helped with some of the code and was lovely in
helping test it.

Fixes #1640
2014-10-22 17:04:55 +00:00