FHIR Chat · New IGPublisher release · IG creation

Stream: IG creation

Topic: New IGPublisher release


view this post on Zulip Grahame Grieve (Jul 01 2020 at 02:33):

@Mark Iantorno has just released a new version of the IG Publisher using the new release framework.

The new version is 1.1.0. From now on, we'll be releasing through github releases, and the URL for the latest publisher will be https://github.com/HL7/fhir-ig-publisher/releases/latest/download/publisher.jar. Please update any links you have for the old publisher to this new address

We are changing the release again because now we have the release process we want in place working. You might recall that we were forced to make a change a few weeks ago because the old release process collapsed before we got this one in place. We expect this change to be permanent now.

@Josh Mandel please advise when the build process is pointing to the new location - thanks

view this post on Zulip Rob Hausam (Jul 01 2020 at 02:40):

Does _updatePublisher handle it?

view this post on Zulip Grahame Grieve (Jul 01 2020 at 02:40):

for now, I have uploaded a copy to the address of the old release, but this is probably the last time I'll do that. I'll be deleting that version soon

view this post on Zulip Grahame Grieve (Jul 01 2020 at 02:40):

not yet. it'll need to be changed

view this post on Zulip Rob Hausam (Jul 01 2020 at 02:41):

yes - not quite so urgent if the old way still works for now

view this post on Zulip Jose Costa Teixeira (Jul 01 2020 at 03:00):

_updatePublisher scripts have been updated (PR needs to be merged by Lloyd or Grahame)

view this post on Zulip Josh Mandel (Jul 01 2020 at 03:24):

Should be set, re: automated IG-build process --https://github.com/FHIR/auto-ig-builder/commit/d198646c2abc0164dd38422ea5bb2bc63f907d4e#diff-5a49469b71b1f5300cf144dc9c92a008R49

view this post on Zulip Chris Moesel (Jul 01 2020 at 12:07):

Love that the new releases come with a change log. Thank you, @Mark Iantorno and @Grahame Grieve ! image.png

view this post on Zulip Mark Iantorno (Jul 01 2020 at 13:32):

If anyone is interested in what is going on behind the scenes to make this happen, all the repos now have full CI/CD pipelines implemented through Azure DevOps, and they can be viewed here: https://dev.azure.com/fhir-pipelines/

view this post on Zulip Jose Costa Teixeira (Jul 01 2020 at 13:40):

Mark Iantorno said:

If anyone is interested in what is going on behind the scenes to make this happen, all the repos now have full CI/CD pipelines implemented through Azure DevOps, and they can be viewed here: https://dev.azure.com/fhir-pipelines/

lovely idea. I have no access though.. :(

view this post on Zulip Lloyd McKenzie (Jul 01 2020 at 14:41):

_updatePublisher PR now merged

view this post on Zulip Mark Iantorno (Jul 01 2020 at 18:21):

That's so weird, you can't access the base project, but all the sub projects are open:

view this post on Zulip Mark Iantorno (Jul 01 2020 at 18:21):

https://dev.azure.com/fhir-pipelines/fhir-core-library/

view this post on Zulip Mark Iantorno (Jul 01 2020 at 18:21):

https://dev.azure.com/fhir-pipelines/fhir-test-cases

view this post on Zulip Mark Iantorno (Jul 01 2020 at 18:21):

https://dev.azure.com/fhir-pipelines/ig-publisher

view this post on Zulip Mark Iantorno (Jul 01 2020 at 18:22):

https://dev.azure.com/fhir-pipelines/ig-registry

view this post on Zulip Jose Costa Teixeira (Jul 01 2020 at 20:00):

these I can open, thanks

view this post on Zulip Grahame Grieve (Jul 01 2020 at 20:08):

Love that the new releases come with a change log

well, we have been doing this for a while now. What this change allows us to do is put it in the release page

view this post on Zulip Jean Duteau (Jul 02 2020 at 16:25):

deleted

view this post on Zulip John Moehrke (Jul 22 2020 at 16:57):

can we get _updatePublisher to also update sushi? sushi changes about as often, but I often forget.

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:17):

We could do something like this:

  1. check if node is available
  2. if so, check if sushi is installed
  3. if so, update

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:17):

then we have a .bat file that gets sushi, and sushi that gets the .bat files :)

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:18):

is that something that everyone would want - or better, is anyone going to have issues with that? I think if we have a prompt Y/N, this should be safe

view this post on Zulip David Pyke (Jul 22 2020 at 17:22):

We're making the bold assumption that enough people who use publisher use sushi and won't find that a pain to say no to all the time.

view this post on Zulip David Pyke (Jul 22 2020 at 17:24):

however, a command line flag to include sushi is less intrusive for those that don't use it.

view this post on Zulip Gino Canessa (Jul 22 2020 at 17:25):

I would (personally) prefer that _updatePublisher updates everything it needs. Ideally, it would do so locally instead of globally though (so that updating a single IG on my machine doesn't partially update others).

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:25):

command line flag would mean bye bye to double click

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:27):

Gino Canessa said:

I would (personally) prefer that _updatePublisher updates everything it needs. Ideally, it would do so locally instead of globally though (so that updating a single IG on my machine doesn't partially update others).

that is kind of what it does now: it updates your IG's scripts and your IG's publisher. If your IG does not have its own publisher, it updates your publisher in the parent folder which is used across other IGs

view this post on Zulip David Pyke (Jul 22 2020 at 17:27):

@Gino Canessa so, check if sushi is installed and update it if it is?

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:27):

well, it doesn't know if sushi is needed for that IG...

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:28):

besides, do we do npm install or npm install -g ?

view this post on Zulip Gino Canessa (Jul 22 2020 at 17:36):

@David Pyke that makes sense to me.
@Jose Costa Teixeira I would vote npm install so that it's local. If I have another IG that I haven't updated I don't want a partial update to blow up my build.

I would argue the same behavior for the parent folder - if you have one that is what you want updated (does not mean you don't have another root path that has a different version).

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:37):

I'm just exploring. if we do npm install, that means my IG folder will get a brand new sushi install in it?

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:38):

If so, I don't think we want to force that on users.

view this post on Zulip David Pyke (Jul 22 2020 at 17:39):

that's why we have to check to see if it exists before any update or prompt

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:39):

i don't know if we can see from a command line if sushi is installed locally or globally.

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:39):

if I have it globally, i do not want it installed locally

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:41):

an alternative - can sushi update itself when it's being called?

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 17:41):

i.e. only for those IGs that actually have sushi

view this post on Zulip David Pyke (Jul 22 2020 at 17:45):

I'd prefer that sushi handled it's own update either directly or by saying "New version available" when run

view this post on Zulip Jean Duteau (Jul 22 2020 at 17:59):

the shell script can't update sushi on many Macs because it needs to be installed with sudo.

view this post on Zulip John Moehrke (Jul 22 2020 at 18:15):

can sushi itself tell that it is not the most current?

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 18:21):

John Moehrke said:

can sushi itself tell that it is not the most current?

If any program can, it's sushi itself

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 18:23):

i'd prefer that, i think:
_updatePublisher does not touch sushi.
Sushi checks itself for possible updates, and if so, asks the user if they want to update . Sushi then sees if it's running locally or globally, and does install or install -g accordingly.
If sushi is running in a CI build or called by the publisher, it will not prompt, it will just warn.

view this post on Zulip John Moehrke (Jul 22 2020 at 18:32):

I realize that eventually sushi and build will stop being a daily update. explaining how to do this daily to new users is frustrating.

view this post on Zulip Gino Canessa (Jul 22 2020 at 18:32):

CI build installs each run, so it cannot be out of date

view this post on Zulip John Moehrke (Jul 22 2020 at 18:38):

that is my current recommendation to new people.. that is to NOT try to locally build, just use the CI build. The only drawback is that you checkin code often, and thus following the #committers/notification stream will see that it took you 5 tries to get the build to work. Which I then tell them that no one inspects each line in that stream

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 18:40):

ok, updated:
Sushi checks itself for possible updates, and if so, asks the user if they want to update.
Sushi then sees if it's installed locally or globally, and does install or install -g accordingly.
If sushi is being called by the publisher, it will not prompt, it will just warn.

view this post on Zulip Jose Costa Teixeira (Jul 22 2020 at 18:56):

...right?

view this post on Zulip Chris Moesel (Jul 22 2020 at 19:19):

the shell script can't update sushi on many Macs because it needs to be installed with sudo

On mine I don't need sudo to do npm installs or updates. Is that an option people intentionally choose for security reasons?

view this post on Zulip Jean Duteau (Jul 22 2020 at 19:25):

yes, my /usr/local doesn't have wide-open privileges. So only administrators can install stuff (like npm and npm modules) there

view this post on Zulip Chris Moesel (Jul 22 2020 at 19:26):

Also, just catching up on this thread now. Almost missed it... We could potentially have SUSHI report when it knows it is out of date. This will require a network connection though. Currently, as long as you've run SUSHI once on your project (to download any dependencies) a network connection is not needed.

I'm not sure I'd want SUSHI to update itself. I certainly wouldn't want that to happen automatically. But I'm also not sure I want to issue a prompt, as that complicates shell scripts and CI. I suppose we could also introduce a flag to suppress the prompt and force y or n -- if this is something users really want. Do you really want SUSHI to offer to update itself when it is out of date? Or do you just want SUSHI to tell you when it is out of date?

view this post on Zulip Chris Moesel (Jul 22 2020 at 19:28):

@Jean Duteau -- my /usr/local is also restricted, but my /usr/local/lib/node_modules is owned by my standard user account, so I can add global node_modules without needing sudo.


Last updated: Apr 12 2022 at 19:14 UTC