Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump mvn extensions #2

Merged
merged 6 commits into from
Oct 28, 2021
Merged

Bump mvn extensions #2

merged 6 commits into from
Oct 28, 2021

Conversation

deivid-rodriguez
Copy link
Contributor

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:

extensions = File.join( '.mvn/extensions.xml' )
if has_extensions = File.exists?( extensions )
# tests need copy instead of move
FileUtils.cp( extensions, extensions + ".orig" )
else
FileUtils.mkdir_p( '.mvn' )
end
FileUtils.cp( File.join( dir, extensions ), extensions ) rescue nil

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
Copy link
Member

kares commented Oct 7, 2020

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

@deivid-rodriguez
Copy link
Contributor Author

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 headius added this to the 3.3.13 milestone Oct 7, 2020
@headius
Copy link
Member

headius commented Apr 1, 2021

What's the status here?

@deivid-rodriguez
Copy link
Contributor Author

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.

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.
@headius
Copy link
Member

headius commented Oct 26, 2021

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

@deivid-rodriguez
Copy link
Contributor Author

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 😆

Run against the latest JRuby and the corresponding CRuby.
TravisCI is essentially dead for open source.
Something generates a backup file of the `pom.ruby-maven.gemspec.xml`
file. I guess it should be gitignored too.
@deivid-rodriguez
Copy link
Contributor Author

@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 headius merged commit 7779014 into jruby:master Oct 28, 2021
@headius
Copy link
Member

headius commented Oct 28, 2021

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

@deivid-rodriguez deivid-rodriguez deleted the bump_plugins branch October 28, 2021 19:54
@deivid-rodriguez
Copy link
Contributor Author

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

@headius
Copy link
Member

headius commented Oct 28, 2021

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
Copy link
Contributor Author

I think @mkristian released gem-maven-plugin 2.0 very recently that includes jruby/jruby-maven-plugins#106, so I believe it should no longer use --no-rdoc

@deivid-rodriguez
Copy link
Contributor Author

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

@headius
Copy link
Member

headius commented Oct 28, 2021

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
Copy link
Contributor Author

Ah, I see 👍.

@deivid-rodriguez
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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

@AndyObtiva
Copy link

AndyObtiva commented Jan 20, 2022

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
Copy link
Member

headius commented Jan 24, 2022

This has finally been released in ruby-maven 3.3.13.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants