jruby / ruby-maven

Eclipse Public License 2.0
1 stars 5 forks source link

Bump mvn extensions #2

Closed deivid-rodriguez closed 2 years ago

deivid-rodriguez commented 3 years ago

When running rmvn from https://github.com/jruby/jruby-openssl, I get source control changes where the .mvn/extensions.yml file in that repository is overwritten with the .mvn/extensions.yml file in this repo.

This is because of this code:

https://github.com/jruby/ruby-maven/blob/2cab8ac4fae8d6bc242e4893c705dde91667f806/lib/ruby_maven.rb#L65-L72

In my understanding, that essentially changes the versions of extensions that get used by mvn.

So even though I'm not totally sure how all this works, I think it would make sense to sync the files and bump the versions here too.

kares commented 3 years ago

oh man, this explains things - will need to look into why we need that temp replacement logic in the first place

deivid-rodriguez commented 3 years ago

Yeah, definitely better would be to understand why this is done if the first place. Although I guess syncing the files in the mean time doesn't hurt?

headius commented 3 years ago

What's the status here?

deivid-rodriguez commented 3 years ago

Not sure, I rebased the PR while going through old PRs, but I'm not sure where it makes sense to merge this or not. I tried to repro the original source control changes I was getting but I don't recall how I was invoking rmvn.

headius commented 2 years ago

@deivid-rodriguez Do you think this is ready in its current form? I saw you have pinged it from a few issues.

deivid-rodriguez commented 2 years ago

Hi @headius. This PR includes the change that should fix things (c8454ee) and the rest of the changes should not leave the repo in a worse state than it is now I believe. But if you plan to merge it, let me cleanup commit history to not feel embarrassed about my commit messages 😆

deivid-rodriguez commented 2 years ago

@headius I cleaned it up. CI is not green but as I said, I think this is an improvement and seems to fix several issues.

headius commented 2 years ago

@deivid-rodriguez Thank you! Hopefully we will have some cycles to get this project caught up and released soon.

deivid-rodriguez commented 2 years ago

Great, I think releasing a new version should fix a few issues specifically related to installing psych through bundler.

headius commented 2 years ago

I started looking into what it would take to release, and there's a deep rabbit hole of libraries that all need updates. Just updating JRuby here breaks the gem installation phase of the build, since the gem-maven-plugin uses newer RubyGems with "--no-rdoc" that is not supported.

I have sent an email to @mkristian about getting us educated on how all the pieces work and possibly taking over maintenance and releases so we can help share the load better.

deivid-rodriguez commented 2 years ago

I think @mkristian released gem-maven-plugin 2.0 very recently that includes https://github.com/torquebox/jruby-maven-plugins/pull/106, so I believe it should no longer use --no-rdoc

deivid-rodriguez commented 2 years ago

In any case, this is just a rubygem, right? It should be released normally like other gems?

headius commented 2 years ago

I did try updating that in the ruby-maven build but still got the error. I may be doing something wrong, or it may not have been fixed completely?

This is a gem and does not get pushed to Maven, but building the native bits is done by Maven via the Ruby polyglot plugin and the gems needed for testing are installed via the gem plugins.

deivid-rodriguez commented 2 years ago

Ah, I see 👍.

deivid-rodriguez commented 2 years ago

I think the trick might be using Java 8? I'm using that and everything seems to be working for me. I recall the same kind of failures you're mentioning on Java 11, that's why I stick to java 8 for now.

deivid-rodriguez commented 2 years ago

Also, I don't understand what the native parts of this library are. It seems just a ruby wrapper on top of mvn that also makes it to use certain plugins (the ones I bumped in this PR).

deivid-rodriguez commented 2 years ago

I opened https://github.com/takari/polyglot-maven/pull/236. I think once that's released and we bump our polyglot-ruby version here, that might do the trick.

AndyObtiva commented 2 years ago

Hi,

I just wanted to note that in the newly released JRuby 9.3.3.0, I still get an issue with ruby-maven when installing psych v4.0.3:

using maven for the first time results in maven
downloading all its default plugin and can take time.
as those plugins get cached on disk and further execution
of maven is much faster then the first time.

[DEPRECATED] `Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env` (called at /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/ruby-maven-3.3.12/lib/ruby_maven.rb:38)
Using warbler 2.0.5
unsupported Java version "17", defaulting to 1.7
[ERROR] Internal error: org.jruby.exceptions.RaiseException: (LoadError) library `java' could not be loaded: java.lang.reflect.InaccessibleObjectException: Unable to make protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException accessible: module java.base does not "opens java.lang" to unnamed module @34819867 -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: org.jruby.exceptions.RaiseException: (LoadError) library `java' could not be loaded: java.lang.reflect.InaccessibleObjectException: Unable to make protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException accessible: module java.base does not "opens java.lang" to unnamed module @34819867
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:121)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.jruby.exceptions.RaiseException: (LoadError) library `java' could not be loaded: java.lang.reflect.InaccessibleObjectException: Unable to make protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException accessible: module java.base does not "opens java.lang" to unnamed module @34819867
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/InternalErrorException
--- ERROR REPORT TEMPLATE -------------------------------------------------------

Errno::ENOENT: No such file or directory - /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/psych-4.0.3-java/deps.lst
  org/jruby/RubyIO.java:1227:in `sysopen'
  org/jruby/RubyIO.java:3986:in `read'
  /Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/jars/installer.rb:69:in `load_from_maven'
  /Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/jars/installer.rb:235:in `install_dependencies'
  /Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/jars/installer.rb:224:in `do_install'
  /Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/jars/installer.rb:170:in `vendor_jars'
  /Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/jars/post_install_hook.rb:28:in `block in <main>'
  /Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/installer.rb:367:in `block in run_post_install_hooks'
  org/jruby/RubyArray.java:1865:in `each'
  /Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/stdlib/rubygems/installer.rb:366:in `run_post_install_hooks'
  /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/bundler-2.3.5/lib/bundler/rubygems_gem_installer.rb:43:in `install'
  /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/bundler-2.3.5/lib/bundler/source/rubygems.rb:204:in `install'
  /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/bundler-2.3.5/lib/bundler/installer/gem_installer.rb:54:in `install'
  /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/bundler-2.3.5/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec'
  /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/bundler-2.3.5/lib/bundler/installer/parallel_installer.rb:186:in `do_install'
  /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/bundler-2.3.5/lib/bundler/installer/parallel_installer.rb:177:in `block in worker_pool'
  /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/bundler-2.3.5/lib/bundler/worker.rb:62:in `apply_func'
  /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/bundler-2.3.5/lib/bundler/worker.rb:57:in `block in process_queue'
  org/jruby/RubyKernel.java:1507:in `loop'
  /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/bundler-2.3.5/lib/bundler/worker.rb:54:in `process_queue'
  /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/gems/bundler-2.3.5/lib/bundler/worker.rb:91:in `block in create_threads'

## Environment

Bundler             2.3.5
  Platforms         ruby, universal-java-17
Ruby                2.6.8p0 (2022-01-19 revision 67951) [java]
  Full Path         /Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/bin/jruby
  Config Dir        /Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/etc
RubyGems            3.2.29
  Gem Home          /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt
  Gem Path          /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt:/Users/andymaleh/.rvm/rubies/jruby-9.3.3.0/lib/ruby/gems/shared
  User Home         /Users/andymaleh
  User Path         /Users/andymaleh/.gem/jruby/2.6.0
  Bin Dir           /Users/andymaleh/.rvm/gems/jruby-9.3.3.0@glimmer-dsl-swt/bin
OpenSSL             
  Compiled          JRuby-OpenSSL 0.11.0
  Loaded            JRuby-OpenSSL 0.11.0
  Cert File         /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home/lib/security/cacerts
  Cert Dir          /etc/ssl/certs
Tools               
  Git               2.24.3 (Apple Git-128)
  RVM               1.29.12-next (master)
  rbenv             not installed
  chruby            not installed
  rubygems-bundler  (1.4.5)

## Bundler Build Metadata

Built At          2022-01-12
Git SHA           a13d015fcb
Released Version  true

## Gemfile

### Gemfile

source 'http://rubygems.org'

ruby '>= 2.6.0', :engine => 'jruby', engine_version: '>= 9.3.0.0'

# Glimmer project owner gems
gem 'glimmer', '~> 2.5.5'
gem 'super_module', '>= 1.4.1', '< 2.0.0'
gem 'nested_inherited_jruby_include_package', '>= 0.3.0', '< 2.0.0'
gem 'puts_debuggerer', '>= 0.13.0', '< 2.0.0', require: false
gem 'rake-tui', '>= 0.2.3', '< 2.0.0'

# 3rd party gems (flexible versions to support other user gems that may share dependencies)
gem 'concurrent-ruby', '>= 1.1.7', '< 2.0.0'
gem 'jruby-win32ole', '>= 0.8.5', '< 2.0.0'
gem 'os', '>= 1.0.0', '< 2.0.0'
gem 'rake', '>= 13.0.0'
gem 'text-table', '>= 1.2.4', '< 2.0.0'
gem 'rouge', '>= 3.26.0', '< 4.0.0'

group :development do
  gem 'juwelier', '>= 2.4.9', '< 3.0.0'
  gem 'warbler', '>= 2.0.5', '< 3.0.0'
  gem 'rspec-mocks', '~> 3.0'
  gem 'rspec', '~> 3.0'
  gem 'coveralls', '= 0.8.23', require: false
  gem 'simplecov', '~> 0.16.1', require: nil
  gem 'simplecov-lcov', '~> 0.7.0', require: nil
end

### Gemfile.lock

GEM
  remote: http://rubygems.org/
  specs:
    addressable (2.8.0)
      public_suffix (>= 2.0.2, < 5.0)
    array_include_methods (1.4.0)
    awesome_print (1.9.2)
    builder (3.2.4)
    concurrent-ruby (1.1.9)
    coveralls (0.8.23)
      json (>= 1.8, < 3)
      simplecov (~> 0.16.1)
      term-ansicolor (~> 1.3)
      thor (>= 0.19.4, < 2.0)
      tins (~> 1.6)
    descendants_tracker (0.0.4)
      thread_safe (~> 0.3, >= 0.3.1)
    diff-lcs (1.4.4)
    docile (1.4.0)
    facets (3.1.0)
    faraday (1.8.0)
      faraday-em_http (~> 1.0)
      faraday-em_synchrony (~> 1.0)
      faraday-excon (~> 1.1)
      faraday-httpclient (~> 1.0.1)
      faraday-net_http (~> 1.0)
      faraday-net_http_persistent (~> 1.1)
      faraday-patron (~> 1.0)
      faraday-rack (~> 1.0)
      multipart-post (>= 1.2, < 3)
      ruby2_keywords (>= 0.0.4)
    faraday-em_http (1.0.0)
    faraday-em_synchrony (1.0.0)
    faraday-excon (1.1.0)
    faraday-httpclient (1.0.1)
    faraday-net_http (1.0.1)
    faraday-net_http_persistent (1.2.0)
    faraday-patron (1.0.0)
    faraday-rack (1.0.0)
    git (1.9.1)
      rchardet (~> 1.8)
    github_api (0.19.0)
      addressable (~> 2.4)
      descendants_tracker (~> 0.0.4)
      faraday (>= 0.8, < 2)
      hashie (~> 3.5, >= 3.5.2)
      oauth2 (~> 1.0)
    glimmer (2.5.5)
      array_include_methods (~> 1.4.0)
      facets (>= 3.1.0, < 4.0.0)
    hashie (3.6.0)
    highline (2.0.3)
    jar-dependencies (0.4.1)
    jruby-jars (9.3.1.0)
    jruby-rack (1.1.21)
    jruby-win32ole (0.8.5)
    json (2.6.1-java)
    juwelier (2.4.9)
      builder
      bundler
      git
      github_api
      highline
      kamelcase (~> 0)
      nokogiri
      psych
      rake
      rdoc
      semver2
    jwt (2.3.0)
    kamelcase (0.0.2)
      semver2 (~> 3)
    method_source (1.0.0)
    multi_json (1.15.0)
    multi_xml (0.6.0)
    multipart-post (2.1.1)
    nested_inherited_jruby_include_package (0.3.0)
    nokogiri (1.12.5-java)
      racc (~> 1.4)
    oauth2 (1.4.7)
      faraday (>= 0.8, < 2.0)
      jwt (>= 1.0, < 3.0)
      multi_json (~> 1.3)
      multi_xml (~> 0.5)
      rack (>= 1.2, < 3)
    os (1.1.4)
    pastel (0.8.0)
      tty-color (~> 0.5)
    psych (3.3.2-java)
      jar-dependencies (>= 0.1.7)
    public_suffix (4.0.6)
    puts_debuggerer (0.13.1)
      awesome_print (~> 1.9.2)
    racc (1.6.0-java)
    rack (2.2.3)
    rake (13.0.6)
    rake-tui (0.2.3)
      tty-prompt
    rchardet (1.8.0)
    rdoc (6.3.3)
    rouge (3.26.1)
    rspec (3.10.0)
      rspec-core (~> 3.10.0)
      rspec-expectations (~> 3.10.0)
      rspec-mocks (~> 3.10.0)
    rspec-core (3.10.1)
      rspec-support (~> 3.10.0)
    rspec-expectations (3.10.1)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.10.0)
    rspec-mocks (3.10.2)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.10.0)
    rspec-support (3.10.3)
    ruby2_keywords (0.0.5)
    rubyzip (1.3.0)
    semver2 (3.4.2)
    simplecov (0.16.1)
      docile (~> 1.1)
      json (>= 1.8, < 3)
      simplecov-html (~> 0.10.0)
    simplecov-html (0.10.2)
    simplecov-lcov (0.7.0)
    super_module (1.4.1)
      method_source (>= 0.8.2, < 1.1.0)
    sync (0.5.0)
    term-ansicolor (1.7.1)
      tins (~> 1.0)
    text-table (1.2.4)
    thor (1.1.0)
    thread_safe (0.3.6-java)
    tins (1.29.1)
      sync
    tty-color (0.6.0)
    tty-cursor (0.7.1)
    tty-prompt (0.23.1)
      pastel (~> 0.8)
      tty-reader (~> 0.8)
    tty-reader (0.9.0)
      tty-cursor (~> 0.7)
      tty-screen (~> 0.8)
      wisper (~> 2.0)
    tty-screen (0.8.1)
    warbler (2.0.5)
      jruby-jars (>= 9.0.0.0)
      jruby-rack (>= 1.1.1, < 1.3)
      rake (>= 10.1.0)
      rubyzip (~> 1.0, < 1.4)
    wisper (2.0.1)

PLATFORMS
  universal-java-1.8
  universal-java-16
  universal-java-17

DEPENDENCIES
  concurrent-ruby (>= 1.1.7, < 2.0.0)
  coveralls (= 0.8.23)
  glimmer (~> 2.5.5)
  jruby-win32ole (>= 0.8.5, < 2.0.0)
  juwelier (>= 2.4.9, < 3.0.0)
  nested_inherited_jruby_include_package (>= 0.3.0, < 2.0.0)
  os (>= 1.0.0, < 2.0.0)
  puts_debuggerer (>= 0.13.0, < 2.0.0)
  rake (>= 13.0.0)
  rake-tui (>= 0.2.3, < 2.0.0)
  rouge (>= 3.26.0, < 4.0.0)
  rspec (~> 3.0)
  rspec-mocks (~> 3.0)
  simplecov (~> 0.16.1)
  simplecov-lcov (~> 0.7.0)
  super_module (>= 1.4.1, < 2.0.0)
  text-table (>= 1.2.4, < 2.0.0)
  warbler (>= 2.0.5, < 3.0.0)

RUBY VERSION
   ruby 2.6.8p0 (jruby 9.3.1.0)

BUNDLED WITH
   2.3.5

--- TEMPLATE END ----------------------------------------------------------------

Unfortunately, an unexpected error occurred, and Bundler cannot continue.

First, try this link to see if there are any existing issue reports for this error:
https://github.com/rubygems/rubygems/search?q=No+such+file+or+directory+-+%2FUsers%2Fandymaleh%2F.rvm%2Fgems%2Fjruby-9.3.3.0%40glimmer-dsl-swt%2Fgems%2Fpsych-4.0.3-java%2Fdeps.lst&type=Issues

If there aren't any reports for this error yet, please fill in the new issue form located at https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md, and copy and paste the report template above in there.

I know that this Pull Request fixed the issue. Will there be a new release of ruby-maven soon?

headius commented 2 years ago

This has finally been released in ruby-maven 3.3.13.