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

Build fails with LoadError when using external GEMs #658

Closed
ysb33r opened this issue Jan 1, 2023 · 6 comments
Closed

Build fails with LoadError when using external GEMs #658

ysb33r opened this issue Jan 1, 2023 · 6 comments
Assignees
Labels
4.x Issues related to the 4.x series bug has-external-block
Milestone

Comments

@ysb33r
Copy link
Member

ysb33r commented Jan 1, 2023

We see these failures during compatibility testing for asciidoctor-gradle-jvm-gems.

Caching disabled for task ':asciidoctor' because:
  Build cache is disabled
Task ':asciidoctor' is not up-to-date because:
  Executed with '--rerun-tasks'.
Copy resources for 'html5' to /home/schalkc/Projects/asciidoctor-dev/asciidoctor-gradle-plugin-4.x/gems/build/gradleTest/external-gems/7.0.2/build/docs/asciidoc
Running AsciidoctorJ instance with classpath [/tmp/.gradle-test-kit-schalkc/caches/jars-8/o_934e619764059302d1595dd76d4b38e8/asciidoctor-gradle-jvm-4.0.0-alpha.1.jar, .... <snipped>
Successfully started process 'command '~/.sdkman/candidates/java/8.0.292.hs-adpt/bin/java''
Exception in thread "main" org.jruby.exceptions.LoadError: (MissingSpecError) Gem::MissingSpecError
	at RUBY.activate_dependencies(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/specification.rb:1404)
	at org.jruby.RubyArray.each(org/jruby/RubyArray.java:1865)
	at RUBY.activate_dependencies(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/specification.rb:1390)
	at RUBY.activate(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/specification.rb:1372)
	at RUBY.try_activate(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems.rb:221)
	at RUBY.require(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:153)
	at RUBY.<main>(<script>:1)
Caused by: org.jruby.exceptions.LoadError: (MissingSpecVersionError) Gem::MissingSpecVersionError
	at RUBY.to_specs(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/dependency.rb:313)
	at RUBY.activate_dependencies(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/specification.rb:1402)
	... 6 more
Caused by: org.jruby.exceptions.LoadError: (MissingSpecError) Gem::MissingSpecError
	at RUBY.activate_dependencies(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/specification.rb:1404)
	at org.jruby.RubyArray.each(org/jruby/RubyArray.java:1865)
	at RUBY.activate_dependencies(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/specification.rb:1390)
	at RUBY.activate(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/specification.rb:1372)
	at RUBY.try_activate(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems.rb:215)
	... 2 more
Caused by: org.jruby.exceptions.LoadError: (MissingSpecVersionError) Gem::MissingSpecVersionError
	at RUBY.to_specs(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/dependency.rb:313)
	at RUBY.activate_dependencies(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/specification.rb:1402)
	... 6 more
Caused by: org.jruby.exceptions.LoadError: (LoadError) no such file to load -- asciidoctor-bibtex
	at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:1017)
	at RUBY.require(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85)
	... 1 more
@ysb33r ysb33r added bug 4.x Issues related to the 4.x series labels Jan 1, 2023
@ysb33r ysb33r added this to the 4.0.0 milestone Jan 1, 2023
@ysb33r ysb33r self-assigned this Jan 1, 2023
@ysb33r
Copy link
Member Author

ysb33r commented Jan 2, 2023

There is now an upstream issue for this: asciidoctor/asciidoctorj#1136

ysb33r added a commit that referenced this issue Jan 2, 2023
@dubinsky
Copy link

There is now an upstream issue for this: asciidoctor/asciidoctorj#1136

... which upstream has no plans to work on and says that this is intended behavior since 7 years ago (for me it worked recently and then stopped...). Is there any hope to be able to use asciidoctor-bibtex?
Thanks!

@tkrah
Copy link

tkrah commented Aug 31, 2023

Can you try the workaround from #628 - at least the error seems similar.

@dubinsky
Copy link

@tkrah

Can you try the workaround from #628 - at least the error seems similar.

I did try the workaround, and it did not work for me.

@ysb33r
Copy link
Member Author

ysb33r commented Dec 29, 2023

I believe I have a solution for this. I just prototyped something for the 4.0 release and it seems to work with bibtex and probably any other GEM that is not already in a JAR.

@dubinsky
Copy link

I believe I have a solution for this.

Thanks! Looking forward to it!

ysb33r added a commit that referenced this issue Jan 3, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugsin were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 3, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugsin were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 3, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugsin were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 3, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugsin were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 3, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugsin were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 3, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugsin were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 3, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugsin were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 4, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugsin were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 4, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugins were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Known issues:

- Supplying an extension via a configuration rather than via
  `docExtensions` does not work.
- GEM resolver test on Windows is failing.

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 4, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugins were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Known issues:

- Supplying an extension via a configuration rather than via
  `docExtensions` does not work.
- GEM resolver test on Windows is failing.

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 4, 2024
This release filly integrates with Grolifant 2.2 and adopts the
newer JVM execution models to. This allows for better integration
with Gradle workers. THis has been so successful that the default
execution model is no a worker with classpath isolation as previously
it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugins were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created

Known issues:

- Supplying an extension via a configuration rather than via
  `docExtensions` does not work.
- GEM resolver test on Windows is failing.

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
ysb33r added a commit that referenced this issue Jan 4, 2024
This prepares 4.0.0 final release. It fully integrates with Grolifant 2.2
and adopts the newer JVM execution models too, whichs allows for better
integration with Gradle workers. This has been so successful that the
default execution model is no a worker with classpath isolation as
previously it always has been javaexec.

JRuby: jruby-gradle plugin has been replaced with jruby-simple-plugin.
  This eliminates a number of issues with the previous plugin in
  terms of functionality and compatibiliy. It also restores
  plugin compatibility with JDK8 whereas the older plugin requires
  JDK11.

GEMs: The issues with load errors for external GEMs has been
  resolved, but eliminating the use of GEM_PATH and rather
  compiling a custom GEM Jar on the fly and placing it on the
  classpath.

Disabled plugins: Some plugins were disabled for this
  release and will probably be fixed for future releases. Due to
  their limited usage, it was thought better to get a release out
  now and fix these later. The plugins are:

  - Leanpub
  - Slides
  - Slides export

Other:

- `asciidoctorEditorConfig` is now lazy-created
- Update to NodeJs plugin 2.0.1
- Remove most deprecated Grolifant 2.0 APIs

Known issues:

- Supplying an extension via a configuration rather than via
  `docExtensions` does not work.
- GEM resolver test on Windows is failing.
- Asciidotor.convertFile. Curretnly the Asciidoctor API does not
  allow for inspection of the Option object and the old Map methods
  are all deprecated.

Closes: #628, #626, #655, #658, #664, #671, #673, #684, i#692, #693
@ysb33r ysb33r closed this as completed Jan 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4.x Issues related to the 4.x series bug has-external-block
Projects
None yet
Development

No branches or pull requests

3 participants