Skip to content

Commit

Permalink
Merge branch 'master' into new_reify_classes
Browse files Browse the repository at this point in the history
headius committed May 16, 2018

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
2 parents 132db9e + 482159b commit 39a76a3
Showing 6,528 changed files with 117,827 additions and 78,904 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -52,8 +52,13 @@ lib/native
lib/ruby/cext/
lib/ruby/gems
lib/ruby/stdlib/*.jar
lib/ruby/stdlib/ant*
lib/ruby/stdlib/cmath.rb
lib/ruby/stdlib/csv.rb
lib/ruby/stdlib/did_you_mean*
lib/ruby/stdlib/fileutils.rb
lib/ruby/stdlib/gauntlet_rdoc.rb
lib/ruby/stdlib/ipaddr*
lib/ruby/stdlib/jar*
lib/ruby/stdlib/jline
lib/ruby/stdlib/jopenssl*
@@ -73,6 +78,8 @@ lib/ruby/stdlib/readline*
lib/ruby/stdlib/minitest*
lib/ruby/stdlib/power_assert*
lib/ruby/stdlib/psych*
lib/ruby/stdlib/scanf.rb
lib/ruby/stdlib/webrick*
lib/ruby/stdlib/**/maven-metadata-local.xml
release.properties
share
@@ -81,7 +88,7 @@ target
test/pom.xml
test/prawn
test/rails
test/testapp/testapp
test/jruby/testapp/testapp
tool/nailgun/Makefile
tool/nailgun/config.log
tool/nailgun/config.status
2 changes: 1 addition & 1 deletion .mvn/extensions.xml
Original file line number Diff line number Diff line change
@@ -3,6 +3,6 @@
<extension>
<groupId>io.takari.polyglot</groupId>
<artifactId>polyglot-ruby</artifactId>
<version>0.1.15</version>
<version>0.3.0</version>
</extension>
</extensions>
63 changes: 42 additions & 21 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -2,45 +2,47 @@ language: java

sudo: false

dist: trusty

cache:
directories:
- $HOME/.m2

before_install:
- unset _JAVA_OPTIONS
- rm ~/.m2/settings.xml
- export MAVEN_SKIP_RC=true
- mvn -Xmx32M -v | grep 1.7.0; if [ $? = 0 ]; then export MAVEN_OPTS="-XX:MaxPermSize=180M"; else export MAVEN_OPTS="-XX:MaxMetaspaceSize=180M -XX:CompressedClassSpaceSize=180M"; fi
- export MAVEN_OPTS="-Xmx500M $MAVEN_OPTS"
- export MAVEN_OPTS="-Xmn64M -Xmx512M -XX:CompressedClassSpaceSize=96M"
- export JAVA_OPTS="$JAVA_OPTS -XX:CompressedClassSpaceSize=96M"

before_script:
- unset GEM_PATH GEM_HOME IRBRC JRUBY_OPTS
- unset _JAVA_OPTIONS # travis/travis#8408
- export PATH="`pwd`/bin:$PATH"
- echo $HOME
- echo $JAVA_OPTS
- echo $MAVEN_OPTS

jdk:
- openjdk7
# - oraclejdk8
- oraclejdk8

os:
- linux

env:
global:
- JAVA_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Xmn36M -Xmx512M"
- JAVA_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Xms48M -Xmx640M -XX:InitialCodeCacheSize=40M -XX:ReservedCodeCacheSize=120M -Djava.security.egd=file:/dev/./urandom"
- MALLOC_ARENA_MAX=2
matrix:
- PHASE='-Ptest'
- PHASE='-Prake -Dtask=test:jruby'
- PHASE='-Prake -Dtask=test:jruby:fullint'
#- PHASE='-Prake -Dtask=test:jruby:fullint' # included with OpenJDK bellow
- PHASE='-Prake -Dtask=test:jruby:jit'
- PHASE='-Prake -Dtask=test:jruby:aot'
- PHASE='-Prake -Dtask=test:mri'
- PHASE='-Prake -Dtask=test:mri:fullint'
- PHASE='-Prake -Dtask=test:mri:jit'
- PHASE='-Prake -Dtask=test:slow_suites'
- PHASE='-Prake -Dtask=test:tracing'
- PHASE='-Prake -Dtask=spec:ji'
- PHASE='-Prake -Dtask=spec:compiler'
- PHASE='-Prake -Dtask=spec:compiler' JRUBY_OPTS=-Xcompile.invokedynamic
@@ -53,20 +55,23 @@ env:

matrix:
include:
- env: PHASE='-Ptest'
jdk: openjdk8
- env: PHASE='-Prake -Dtask=test:jruby:fullint'
jdk: openjdk8
# these profile do no need to run for all JDKs
- env: PHASE='-Pdist'
jdk: oraclejdk8
jdk: openjdk8
- env: PHASE='-Pjruby-jars'
jdk: openjdk7
jdk: openjdk8
- env: PHASE='-Pmain'
jdk: oraclejdk8
- env: PHASE='-Pcomplete'
jdk: oraclejdk8
- env: PHASE='-Posgi'
jdk: openjdk7
jdk: oraclejdk8
- env: PHASE='-Pj2ee'
jdk: oraclejdk7
# These next two started crashing on JDK7 in March 2015, possibly due to JVM issues on Travis's Docker-based env
jdk: oraclejdk8
- env: PHASE='-Pjruby-jars,test -Dinvoker.test=extended'
jdk: oraclejdk8
- env: PHASE='-Pmain,test -Dinvoker.test=extended'
@@ -75,17 +80,26 @@ matrix:
jdk: oraclejdk8
- env: COMMAND=test/check_versions.sh
jdk: oraclejdk8
- env: PHASE='-Prake -Dtask=test:jruby:jit'
jdk: oraclejdk9
- env: PHASE='-Prake -Dtask=test:mri:jit'
jdk: oraclejdk9
- env: PHASE='-Prake -Dtask=spec:ruby:fast'
jdk: oraclejdk9
- env: PHASE='-Pmain'
jdk: oraclejdk9
- env: PHASE='-Pcomplete'
jdk: oraclejdk9
allow_failures:
#- env: PHASE='-Pj2ee'
# jdk: oraclejdk7
# NOTE: build seems to never start (waited for any to finish for more than a day) - probably a travis-ci bug
#- env: PHASE='-Pmain'
# sudo: required
# dist: trusty
# group: edge
# jdk: oraclejdk9
- env: PHASE='-Prake -Dtask=test:jruby:jit'
jdk: oraclejdk9
- env: PHASE='-Prake -Dtask=test:mri:jit'
jdk: oraclejdk9
- env: PHASE='-Prake -Dtask=spec:ruby:fast'
jdk: oraclejdk9

install: tool/travis-install.sh
install:
- ./mvnw $MAVEN_CLI_OPTS package -B -Dinvoker.skip -Dmaven.test.skip
script: tool/travis-script.sh

notifications:
@@ -104,3 +118,10 @@ notifications:

services:
- redis-server
- haveged

addons:
apt:
packages:
# - oracle-java9-installer
- haveged
65 changes: 33 additions & 32 deletions BUILDING.md
Original file line number Diff line number Diff line change
@@ -63,7 +63,7 @@ verify that JRuby is still fully functional.

### Hacking the Build System

for a general overview of the different directories and maven artifacts see [JRuby Build)](https://github.com/jruby/jruby/wiki/JRuby-Build----Some-Inside-Info)
for a general overview of the different directories and maven artifacts see [JRuby Build](https://github.com/jruby/jruby/wiki/JRuby-Build----Some-Inside-Info)

For this only the ***pom.rb*** needs to edited. using mvn-3.3.x or the maven wrapper `./mvnw` will generate the pom.xml file where needed. For the jar files of the build those pom.xml will be generated for some use-cases, i.e. some IDEs need them.

@@ -123,19 +123,21 @@ from MRI's tests (under test/mri), use one of the following commands:
The MRI suite (under `test/mri`) has a runner script in `test/mri/runner.rb` that sets up
an appropriate test environment. Many of the MRI tests will need to be run via this script.
```
jruby -r ./test/mri_test_env.rb test/mri/runner.rb test/mri/<path to test>
jruby test/mri/runner.rb test/mri/<path to test>
```

You can pass `-v` to the runner for verbose output or `-n test_method_name` to only run a single test method. If you are interested in all failures you can exlude the -r option (of mri_test_env.rb). Some excluded tests are inherent limitations of JRuby and some are just problems we have not gotten to yet.
You can pass `-v` to the runner for verbose output or `-n test_method_name` to only run a single test method.

#### Run a test file with known-failing tests excluded

The runner script provides a mechanism for "excluding" known failing tests. Ruby scripts under `test/mri/exclude`, named based on the name of the test case's class, exclude with comment tests known to fail.
The runner script provides a mechanism for "excluding" known failing tests. These are usually features that JRuby has not yet implemented or can't implement on the JVM.

To run a given test with these excludes enabled, you can use the EXCLUDES environment variable:
Excludes are in the form of Ruby scripts under `test/mri/exclude`, named based on the name of the test case's class, exclude with comment tests known to fail.

To run a given test with these excludes enabled, you can use the --excludes flag:

```
EXCLUDES=test/mri/excludes bin/jruby test/mri/runner.rb <test file>
bin/jruby test/mri/runner.rb --excludes=test/mri/excludes <test file>
```

#### Run a single Ruby spec
@@ -149,7 +151,7 @@ jruby spec/mspec/bin/mspec ci spec/ruby/<path to spec>
If `ci` is omitted or replaced with `run` you will see any specs known to fail. The `ci` command
avoids running those specs.

#### Run JRuby with with remote debugging
#### Run JRuby with remote debugging

If you are familiar with Java debuggers, you can attach one to a JRuby process using the JDWP agent.
The exact flag may vary with debugger and platform:
@@ -180,9 +182,9 @@ mvn -Pdist -Dinvoker.skip=false

JRuby runs CI tests on TravisCI. See [.travis.yml](https://github.com/jruby/jruby/blob/master/.travis.yml).

#### maven integration tests - -Pjruby-complete or -Pmain
#### Maven integration tests - -Pjruby-complete or -Pmain

maven integration test will use the packed maven artifact to run the tests in a forked maven instance. these maven projects are locatated in
maven integration tests will use the packed maven artifact to run the tests in a forked maven instance. These maven projects are locatated in

```
maven/jruby/src/it
@@ -191,7 +193,7 @@ maven/jruby-jars/src/it
maven/jruby-dist/src/it
```

to trigger the tests with the build:
To trigger the tests with the build:

```
mvn -Pmain -Dinvoker.skip=false
@@ -200,8 +202,7 @@ mvn -Pdist -Dinvoker.skip=false
mvn -Pjruby-jars -Dinvoker.skip=false
```

to pick a particular test add the name of the directory inside the respective *src/it* folder, like (wildcards are possible):

To pick a particular test, add the name of the directory inside the respective *src/it* folder, like (wildcards are possible):

```
mvn -Pmain -Dinvoker.skip=false -Dinvoker.test=integrity
@@ -212,21 +213,21 @@ mvn -Pmain -Dinvoker.skip=false -Dinvoker.test=osgi*
Clean Build
-----------

To clean the build it is important to use the same profile for the clean as what you want to build. the best way to clean build something is, i.e. jruby-jars
To clean the build it is important to use the same profile for the clean as what you want to build. The best way to clean build something is, i.e. jruby-jars

```
mvn clean install -Pjruby-jars
```

this first cleans everything and then starts the new build in one go !
This first cleans everything and then starts the new build in one go!

Cleaning the build may be necessary after switching to a different
version of JRuby (for example, after switching git branches) to ensure
that everything is rebuilt properly.

NOTE: ```mvn clean``` just cleans the **jruby-core** artifact and the **./lib/jruby.jar** !
NOTE: ```mvn clean``` just cleans the **jruby-core** artifact and the **./lib/jruby.jar**!

clean everything:
Clean everything:

```
mvn -Pclean
@@ -235,67 +236,67 @@ mvn -Pclean
Distribution Packages
---------------------

all distribution packages need maven-3.3.x or the use of supplied maven wrapper. all examples below will show the use of the maven wrapper.
All distribution packages need maven-3.3.x or the use of supplied maven wrapper. All examples below will show the use of the maven wrapper.

###the tar.gz and zip distribution packages###
### The tar.gz and zip distribution packages

```
./mvnw -Pdist
```

the files will be found in ./maven/jruby-dist/target
The files will be in `./maven/jruby-dist/target`.

###jruby-complete.jar###
### `jruby-complete.jar`

```
./mvnw -Pcomplete
```

the file will be in ./maven/jruby-complete/target
The file will be in `./maven/jruby-complete/target`.

###jruby maven artifacts###
### jruby maven artifacts

```
./mvnw -Pmain
```

and those files will be installed in you maven local-repository ready to use with maven, ivy, buildr, etc
And those files will be installed in your maven local-repository ready to use with maven, ivy, buildr, etc.

###jruby jars gem###
### jruby jars gem

```
./mvnw -Pjruby-jars
```

the gem will be in ./maven/jruby-jars/pkg
The gem will be in `./maven/jruby-jars/pkg`.

### building ALL packages ###
### Building ALL packages

```
./mvnw -Pall
```

### cleaning the build ###
### Cleaning the build

this will also clean the **ext** directories, i.e. a new build will then use the latest code from there for **lib/ruby**
This will also clean the **ext** directories, i.e. a new build will then use the latest code from there for **lib/ruby**.

```
./mvnw -Pclean
```

## release ##
## Release

first set the new version in the file *VERSION* inside the root directory and then to deploy the maven artifact to sonatype oss execute:
First set the new version in the file *VERSION* inside the root directory and then to deploy the maven artifact to sonatype oss execute:

```
./mvnw clean deploy -Psonatype-oss-release
```

go to oss.sonatype.org and close the deployment which will check if all 'required' files are in place and then finally push the release to maven central and . . .
Go to https://oss.sonatype.org/ and close the deployment, which will check if all 'required' files are in place and then finally push the release to Maven Central and . . .

### Start a new version

After the release set the new development version in *VERSION* and generate the pom.xml files
After the release, set the new development version in *VERSION* and generate the `pom.xml` files:

```
./mvnw
Loading

0 comments on commit 39a76a3

Please sign in to comment.