FHIR Chat · Need help - trying to install Jekyll · IG creation

Stream: IG creation

Topic: Need help - trying to install Jekyll


view this post on Zulip Joan Harper (Nov 24 2021 at 19:18):

As part of my effort to learn FSH, I need to install the FHIR IG publisher.
According to https://confluence.hl7.org/display/FHIR/IG+Publisher+Documentation#IGPublisherDocumentation-UsingFHIRIGPublisher, in order to do that, I need to install Jekyll.

I have downloaded the publisher.jar.

I have gone to the Windows instructions to install Jekyll for Windows (http://jekyll-windows.juthilo.com/).
I have completed step 1, which is downloading and installing Ruby v2.0.0, then downloading and installing the Ruby DevKit that begins with DevKit-mingw64.

I am stuck on step 2 which is installing the Jekyll Gem. The instructions say to open a command line and enter the command "gem install jekyll". When I do that, I get the following error:

ERROR: Could not find a valid gem 'jekyll' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: tlsv1 alert protocol version (https://rubygems.org/latest_specs.4.8.gz)

Step 2 has a note that says v2.4 (from 2014) is the latest version at the time of writing which is compatible with Windows.

I went to rubygems.org and downloaded version 2.4, dropped it in the RubyDevKit directory and tried again to run the command. I received the following error:
ERROR: While executing gem ... (Gem::DependencyError)
Unable to resolve dependencies: jekyll requires liquid (~> 2.6.1), kramdown (~> 1.3), mercenary (~> 0.3.3), safe_yaml (~> 1.0), colorator (~> 0.1), pygments.rb (~> 0.6.0), redcarpet (~> 3.1), toml (~> 0.1.0), jekyll-paginate (~> 1.0), jekyll-gist (~> 1.0), jekyll-coffeescript (~> 1.0), jekyll-sass-converter (~> 1.0), jekyll-watch (~> 1.1), classifier-reborn (~> 2.0)

Can anyone help me to troubleshoot the Jekyll install?

view this post on Zulip Grahame Grieve (Nov 24 2021 at 19:23):

Could not find a valid gem 'jekyll' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: tlsv1 alert protocol version (https://rubygems.org/latest_specs.4.8.gz)

That's the important one, and we won't be able to help with that here, I think.

view this post on Zulip Grahame Grieve (Nov 24 2021 at 19:24):

do you have a network agent somewhere blocking that site?

view this post on Zulip Joan Harper (Nov 24 2021 at 19:26):

I don't think so. I was able to navigate to it directly from the same computer

view this post on Zulip Grahame Grieve (Nov 24 2021 at 19:32):

but the problem is reproducible?

view this post on Zulip Joan Harper (Nov 24 2021 at 19:33):

Yes. I got the same error message a couple of times.

view this post on Zulip Joan Harper (Nov 24 2021 at 19:34):

In the meantime, I have gone through the Jekyll installation instructions at https://jekyllrb.com/docs/installation/windows/. This installed the following:

Ruby 3.0.2p107
Jekyll 4.2.1

view this post on Zulip Joan Harper (Nov 24 2021 at 19:38):

I haven't got to the point of attempting to publish anything so I don't actually know if the newer version of Jekyll works with the IG Publisher. DO you know if it does?

view this post on Zulip Joan Harper (Nov 24 2021 at 20:03):

It looks like Jekyll is for creating websites.
How does Jekyll interact with the IG Publisher?
Is there any sort of education around setting up and using the IG Publisher/Jekyll?

I must admit that I am pretty lost here.

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:07):

the IG-publisher prepares a set of files for Jekyll to process. Because an IG is effectively a web site.

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:08):

I think we're feeling pretty lost too - we just use Jekyll, and if the install fails... I guess you have to ask on a Jekyll support forum

view this post on Zulip Joan Harper (Nov 24 2021 at 20:10):

so basically, If I have Jekyll installed successfully, then I create a new directory for my site (IG), I drop the output of the IG Publisher in that directory, and then I build and serve it with Jekyll?

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:12):

well, you can, but you don't need to - the IG output doesn't assume you're running a web server (some web sites do) and you can just load it by double clicking the files in explorer (we all do that). The IG publisher will use Jekyll internally - you don't need to do anything with it other than have it installed

view this post on Zulip Joan Harper (Nov 24 2021 at 20:15):

OK. So I am not actually going to use Jekyll - only install it.

Would you be able to send me a sample that I could run through IG Publisher in order to verify that the newer version of Jekyll works with IG Publisher. I don't have anything yet, as I am just starting to learn FSH. I am trying to get the environment fully set up before I really get into it.

view this post on Zulip Jose Costa Teixeira (Nov 24 2021 at 20:15):

Some time ago I had a portable Jekyll install - i.e. no install

view this post on Zulip Rob Hausam (Nov 24 2021 at 20:16):

@Joan Harper I'm running into a seemingly similar issue related to ssl when trying to install Jekyll on my new MITRE Macbook Pro. I think it's blocked by the VPN. You may have a similar issue? The IG build process definitely does use Jekyll.

view this post on Zulip Jose Costa Teixeira (Nov 24 2021 at 20:16):

I can recover the scripts for that portable Jekyll if you want @Joan Harper

view this post on Zulip Rob Hausam (Nov 24 2021 at 20:16):

I can let you know how I manage to solve it on my end. Or you can try Jose's option.

view this post on Zulip Joan Harper (Nov 24 2021 at 20:17):

@Rob Hausam I was able to install the newer version without any issues. I just don't have anything that I can use to validate if the newer version works.

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:17):

we use https://github.com/FHIR/sample-ig

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:17):

for sample testing

view this post on Zulip Joan Harper (Nov 24 2021 at 20:17):

@Jose Costa Teixeira That would be appreciated.

view this post on Zulip Joan Harper (Nov 24 2021 at 20:18):

@Grahame Grieve to use that sample, what would I do to run it through the IG publisher?

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:21):

see https://confluence.hl7.org/display/FHIR/IG+Publisher+Documentation#IGPublisherDocumentation-UsingFHIRIGPublisher - run it and point it at the folder that you put your local clone of that github repo in

view this post on Zulip Jose Costa Teixeira (Nov 24 2021 at 20:24):

https://gist.github.com/costateixeira/a427cb57b90d4cbddb6ef957b0ed64ec

view this post on Zulip Joan Harper (Nov 24 2021 at 20:24):

Thanks @Grahame Grieve .
Now I need to figure out how to make a local clone of a github repository.

I'm beginning to understand why everyone wants to use Simplifier instead of IG Publisher.

view this post on Zulip Joan Harper (Nov 24 2021 at 20:26):

@Jose Costa Teixeira Thanks. I will try that if the newer version of Jekyll does not work.

view this post on Zulip Jose Costa Teixeira (Nov 24 2021 at 20:26):

The link above is portable Jekyll. Basically it was a temporary solution so it requires an adaptation to the script as per instructions

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:26):

unfortunately, the simplifier mantainers have never done the work to make it possible for HL7 to publish IGs edited in simplifier. So we're stuck with what we have, which does require a set of technical skills around git, yes.

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:27):

installing Jekyll is usually straightforward though

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:27):

for now, you need a basic git tutorial

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:28):

I don't know if anyone has any recommendations for the last worst one of those

view this post on Zulip Jose Costa Teixeira (Nov 24 2021 at 20:28):

I also don't know why you are looking at ruby 2.0.0... I think Jekyll requires 2.6 or so

view this post on Zulip Joan Harper (Nov 24 2021 at 20:40):

@Jose Costa Teixeira The instructions that the Confluence page links to are at http://jekyll-windows.juthilo.com/1-ruby-and-devkit/. On that page, it has a screenshot of setting up using Ruby 2.0.0-p481-x64. Then for the DevKit, it says that for Ruby 2.0.0, the file name will begin with DevKit-mingw64.
On Step 2, it said the latest version of Jekyll at the time of writing is v2.4.0

I was following the instructions on that website. It's quite possible that the links on the Confluence page are out of date?

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:56):

that page it points to is out of date. Does anyone know of a more recent page?

view this post on Zulip Grahame Grieve (Nov 24 2021 at 20:58):

no. we should just reference https://jekyllrb.com/docs/installation/windows/

view this post on Zulip Vassil Peytchev (Nov 24 2021 at 21:03):

The Confluence page seems to be partially out of date. Probably the easiest way to get started would be:

  1. Install Java SDK
  2. Install the latest stable Ruby and Jeckyl
  3. Install Git for Windows
  4. From the Bash shell that comes with Git for Windows git clone git@github.com:FHIR/sample-ig.git
  5. reference the IG Guidance, and the Confluence page on how to use _updatePublisher[.bat or .sh] and _genonce[.bat or .sh]

view this post on Zulip Grahame Grieve (Nov 24 2021 at 21:08):

would you like to add that to the confluence page?

view this post on Zulip Joan Harper (Nov 24 2021 at 21:37):

@Grahame Grieve I cloned the git repository but I still have questions.

1) which file should I choose? Earlier you said to point to the folder but the 'choose' seems to want a file name.
2) the window that I see when opening the publisher.jar file only has one window, not a left side and right side as shown in the screenshot. It also doesn't have the version number showing at the bottom like the screenshot.
3) where would I expect to see the output from the execute operation, and what format should I expect that output to be in?

This is what I see when I open the publisher.jar

image.png

view this post on Zulip Vassil Peytchev (Nov 24 2021 at 22:29):

@Joan Harper The fastest way to see output of the sample IG is to navigate to the top folder of the cloned git repository, and there run _updatePublisher.bat (answer yes to all prompts) and then run _genonce.bat. if everything works as expected, you will have the IG in the output folder, where you can open index.html in a browser to see the result of the publisher.

view this post on Zulip Joan Harper (Nov 25 2021 at 15:19):

@Vassil Peytchev Thank you so much.
I was able to verify that the example IG builds correctly and look at the index.html in the browser.

view this post on Zulip Vassil Peytchev (Nov 26 2021 at 19:44):

I added a Quick Start section on the Confluence Page based on this discussion.


Last updated: Apr 12 2022 at 19:14 UTC