ruby / ruby/cgi

CI: JRuby test suite fails to compile

未关闭
#59 1 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

@headius 已经在做这个了。

开始于 2025年4月24日。

主要语言
Ruby
星标
55
派生
33
平均合并
7 天 3 小时
30 天内合并 PR
1

描述

This is a sign-post issue. jruby-head does not currently build right.

The setup-ruby step say this:

Modifying JAVA_HOME for JRuby
  attempting to run with existing JAVA_HOME
  /usr/lib/jvm/temurin-17-jdk-amd64/bin/java -jar /home/runner/.rubies/jruby-head/lib/jruby.jar --version
  Error: LinkageError occurred while loading main class org.jruby.Main
  	java.lang.UnsupportedClassVersionError: org/jruby/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0
mkdir -p tmp/java/escape
javac -target 1.8 -source 1.8 -Xlint -d tmp/java/escape -cp /home/runner/.rubies/jruby-head/lib/jruby.jar ext/java/org/jruby/ext/cgi/escape/CGIEscape.java
warning: [options] bootstrap class path not set in conjunction with -source 8
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:35: error: cannot access Ruby
import org.jruby.Ruby;
                ^
  bad class file: /home/runner/.rubies/jruby-head/lib/jruby.jar(/org/jruby/Ruby.class)
    class file has wrong version 65.0, should be 61.0
    Please remove or make sure it appears in the correct subdirectory of the classpath.
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:36: error: cannot access RubyClass
import org.jruby.RubyClass;
                ^
  bad class file: /home/runner/.rubies/jruby-head/lib/jruby.jar(/org/jruby/RubyClass.class)
    class file has wrong version 65.0, should be 61.0
    Please remove or make sure it appears in the correct subdirectory of the classpath.
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:37: error: cannot access RubyEncoding
import org.jruby.RubyEncoding;
                ^
  bad class file: /home/runner/.rubies/jruby-head/lib/jruby.jar(/org/jruby/RubyEncoding.class)
    class file has wrong version 65.0, should be 61.0
    Please remove or make sure it appears in the correct subdirectory of the classpath.
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:38: error: cannot access RubyModule
import org.jruby.RubyModule;
                ^
  bad class file: /home/runner/.rubies/jruby-head/lib/jruby.jar(/org/jruby/RubyModule.class)
    class file has wrong version 65.0, should be 61.0
    Please remove or make sure it appears in the correct subdirectory of the classpath.
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:39: error: cannot access RubyString
import org.jruby.RubyString;
                ^
  bad class file: /home/runner/.rubies/jruby-head/lib/jruby.jar(/org/jruby/RubyString.class)
    class file has wrong version 65.0, should be 61.0
    Please remove or make sure it appears in the correct subdirectory of the classpath.
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:40: error: cannot access JRubyMethod
import org.jruby.anno.JRubyMethod;
                     ^
  bad class file: /home/runner/.rubies/jruby-head/lib/jruby.jar(/org/jruby/anno/JRubyMethod.class)
    class file has wrong version 65.0, should be 61.0
    Please remove or make sure it appears in the correct subdirectory of the classpath.
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:41: error: cannot access Block
import org.jruby.runtime.Block;
                        ^
  bad class file: /home/runner/.rubies/jruby-head/lib/jruby.jar(/org/jruby/runtime/Block.class)
    class file has wrong version 65.0, should be 61.0
  symbol:   variable RubyString
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:329: error: cannot find symbol
        RubyString dest = null;
        ^
  symbol:   class RubyString
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:333: error: cannot find symbol
        Encoding origenc, encidx = EncodingUtils.rbToEncoding(context, encoding);
                                   ^
  symbol:   variable EncodingUtils
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:336: error: cannot find symbol
        ByteList byteList = str.getByteList();
        ^
  symbol:   class ByteList
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:341: error: cannot find symbol
        Ruby runtime = context.runtime;
        ^
  symbol:   class Ruby
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:360: error: cannot find symbol
                dest = RubyString.newStringLight(runtime, len);
                       ^
  symbol:   variable RubyString
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:373: error: cannot find symbol
            cr = StringSupport.CR_UNKNOWN;
                 ^
  symbol:   variable StringSupport
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:381: error: cannot find symbol
            if (StringSupport.encCoderangeClean(dest.getCodeRange()) == 0) {
                ^
  symbol:   variable StringSupport
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:383: error: cannot find symbol
                if (cr != StringSupport.CR_UNKNOWN)
                          ^
  symbol:   variable StringSupport
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:399: error: cannot find symbol
        RubyString str = _str.convertToString();
        ^
  symbol:   class RubyString
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:404: error: cannot find symbol
            return Helpers.invokeSuper(context, self, _str, Block.NULL_BLOCK);
                                                            ^
  symbol:   variable Block
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:404: error: cannot find symbol
            return Helpers.invokeSuper(context, self, _str, Block.NULL_BLOCK);
                   ^
  symbol:   variable Helpers
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:417: error: cannot find symbol
        RubyString str = _str.convertToString();
        ^
  symbol:   class RubyString
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:422: error: cannot find symbol
            return Helpers.invokeSuper(context, self, _str, Block.NULL_BLOCK);
                                                            ^
  symbol:   variable Block
  location: class CGIEscape
ext/java/org/jruby/ext/cgi/escape/CGIEscape.java:422: error: cannot find symbol
            return Helpers.invokeSuper(context, self, _str, Block.NULL_BLOCK);
                   ^
  symbol:   variable Helpers
  location: class CGIEscape
100 errors
1 warning
only showing the first 100 errors, of 119 total; use -Xmaxerrs if you would like to see more
rake aborted!
Command failed with status (1): [javac -target 1.8 -source 1.8 -Xlint -d tmp/java/escape -cp /home/runner/.rubies/jruby-head/lib/jruby.jar ext/java/org/jruby/ext/cgi/escape/CGIEscape.java]

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。