Skip to content

Bump mvn extensions - #2

Merged
headius merged 6 commits into
jruby:masterfrom
deivid-rodriguez:bump_plugins
Oct 28, 2021
Merged

Bump mvn extensions#2
headius merged 6 commits into
jruby:masterfrom
deivid-rodriguez:bump_plugins

Conversation

@deivid-rodriguez

Copy link
Copy Markdown
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')
ifhas_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)rescuenil

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

kares commented Oct 7, 2020

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

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?

@headiusheadius added this to the 3.3.13 milestone Oct 7, 2020
@headius

Copy link
Copy Markdown
Member

What's the status here?

@deivid-rodriguez

Copy link
Copy Markdown
ContributorAuthor

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

@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
Copy Markdown
ContributorAuthor

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
Copy Markdown
ContributorAuthor

@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:masterOct 28, 2021
@headius

Copy link
Copy Markdown
Member

@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
Copy Markdown
ContributorAuthor

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

@headius

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
ContributorAuthor

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

@headius

Copy link
Copy Markdown
Member

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
Copy Markdown
ContributorAuthor

Ah, I see 👍.

@deivid-rodriguez

Copy link
Copy Markdown
ContributorAuthor

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
ContributorAuthor

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

AndyObtiva commented Jan 20, 2022

Copy link
Copy Markdown

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 forthe first time resultsin 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### Gemfilesource'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
Copy Markdown
Member

This has finally been released in ruby-maven 3.3.13.

Sign up for freeto 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

@deivid-rodriguez@kares@headius@AndyObtiva