Skip to content

New SOFA version: SOFA 20160503. - #35

Merged
eteq merged 8 commits into
liberfa:masterfrom
phn:sofac20160503
Sep 1, 2016
Merged

eteq merged 8 commits into
liberfa:masterfrom
phn:sofac20160503

Conversation

@phn

@phn phn commented May 17, 2016

Copy link
Copy Markdown
Contributor

This pull request updates ERFA to use SOFA version 20160503.

I followed the steps in RELEASE.rst, upto and including the "make distcheck" step. I think the steps after that are to be made in the liberfa/erfa repository.

I had to edit the file src/Makefile.am to include the new files added by SOFA. (See http://www.iausofa.org/current_changes.html). This step is not mentioned in RELEASE.rst and so I have added it.

This closes #34 .

phn added 3 commits May 17, 2016 14:09
Took following steps:
git rm src/*.c and src/*.h.
copied erfa-fetch/erfa/* to src/*
git add src/
Changed package version to 1.3.0 from 1.2.0 in README.rst,
and configure.ac.

Changed library version info from (3, 0, 2) to (4, 0, 3) in
configure.ac.

http://www.iausofa.org/current_changes.html: changes in this
version of SOFA are 10 new functions, and change in the documentation
of iau_atco13 and iau_atio13 regarding list of routines called.
Since these don't break API increment package MINOR version and
set patch to 0; increment current and age in library version info.

Made note in README.rst that ERFA 1.3.0 and SOFA 20160503 don't
have any differences.
This step was missing in RELEASE.rst. I am adding this step to
RELEASE.rst.
@phn phn mentioned this pull request May 17, 2016
In the previous commit I had deleted the previous change. It seems
better to have a list of changes, instead on the changes for the
current version.
@mhvk

mhvk commented Aug 11, 2016

Copy link
Copy Markdown
Contributor

@eteq - did this slip by? In the meantime, an update to this version of SOFA has been put out (mostly for the leap second, but also the deflection of the sun, which will allow us to remove a work-around in astropy).

phn added 3 commits August 12, 2016 07:14
+ Documentation fix for cr.c. See issue liberfa#36.
+ New leap second for 2016 December 31.
+ Change to threshold value in ldsun.
+ Updates to test to check new leap second.

Carried out the following steps, after running sofa_deriver in
erfa-fetch repository::

    git rm src/*.c and src/*.h.
    copied erfa-fetch/erfa/* to src/*
    git add src/
Changed package version to 1.4.0 from 1.3.0 in README.rst,
and configure.ac.

Changed library version info from (4, 0, 3) to (5, 0, 4) in
configure.ac.

Changes in SOFA don't break API increment package MINOR version and
set patch to 0; increment current and age in library version info.

Made note in README.rst that ERFA 1.4.0 and SOFA 20160503_a don't
have any differences.
@phn

phn commented Aug 12, 2016

Copy link
Copy Markdown
Contributor Author

Hello,

I have updated SOFA to version "20160503_a". As before, I ran the steps up to and including "make distcheck" described in RELEASE.rst.

Regards,
Prasanth

@mhvk

mhvk commented Aug 12, 2016

Copy link
Copy Markdown
Contributor

@phn - thanks very much! Sadly, I don't really know how to do erfa releases (nor can I merge anything here), so I'll leave it to @eteq and @taldcroft to have a look.

@phn

phn commented Aug 12, 2016

Copy link
Copy Markdown
Contributor Author

@mhvk No problem! I was just making sure that the PR was up-to-date with SOFA releases.

@eteq

eteq commented Aug 13, 2016

Copy link
Copy Markdown
Member

Oops, sorry - I earmarked this to take care of "after the Astropy 1.2 release" and then it slipped off my radar. Will aim to review this ASAP!

@mhvk

mhvk commented Aug 24, 2016

Copy link
Copy Markdown
Contributor

@eteq - ping!?

@eteq

eteq commented Aug 24, 2016

Copy link
Copy Markdown
Member

Sorry, should have left a message here. I did take a look and it mostly looks good but I ran into some oddities around the configure.ac (I thought those were supposed to get checked/generated), and hasn't quite sorted it out yet. Will try to do that ASAP or just give up for now and just merge and release without that machinery.

@phn

phn commented Aug 25, 2016

Copy link
Copy Markdown
Contributor Author

Hello,

@eteq Thanks for finding time to do this!

There are two manual changes made in configure.ac: updating library version and package version. Also I had to add new files to src/Makefile.am (i.e., a new SOFA function) so that the build system picks them up. Otherwise I have left the whole libtools machinery unchanged. I do not know libtools, but if you can report what seems to be wrong, I am willing to research it.

Thanks again,
Regards,
Prasanth

@eteq

eteq commented Aug 25, 2016

Copy link
Copy Markdown
Member

@phn - yeah, I got that part, thanks. The weird thing to me is that I thought we wrote some machinery to automatically populate the Makefile.am. There's not much point to the automated generation machinery if it doesn't check that... So I got as far as trying to figure out if libtools was going to update it downstream during the actual release/build, and haven't gotten back to it since then.

Assuming it doesn't, the thing to do would be to add a bit to https://github.com/liberfa/erfa-fetch's sofa_deriver.py which updates the Makefile.am if needed. That would be a separate PR, but I was trying to determine if that was needed before finalizing this.

@phn

phn commented Aug 27, 2016 •

Copy link
Copy Markdown
Contributor Author

@eteq,

The current setup requires us to manually list the sources in "liberfa_la_SOURCES". The tool chain takes care of automatically adding object files to resulting Makefile.

Since SOFA won't be adding/removing too many files, I think for the time being this can be done manually, as part of release. The person doing this do need to read SOFA change list and so will be aware of the modifications. I have already added this to instructions in RELEASE.rst in this PR.

Since sofa_deriver.py doesn't know where the files will be moved to, I am not sure that it is the right place to do this.

I couldn't find a way to make autotools to do this automatically. We can add some shell scripts in erfa source directory to make this semi-automatic: http://stackoverflow.com/questions/27817108/autodetect-source-for-automake.

Regards,
Prasanth

@eteq

eteq commented Aug 29, 2016

Copy link
Copy Markdown
Member

@phn - OK, good points all. I would like to say a checker script as you suggest, but that's not urgent now as it's currently all up to date. I'll create a new issue to try to remind us to do that as time permits.

So I think this is all set except for one thing I just noticed: why did you set the version to 1.4.0 (and shared library to 5.0.4) instead of 1.3.0 (4.0.3) ? The last ERFA release was 1.2.0 so I would think this should be 1.3.0 ...?

@phn

phn commented Aug 30, 2016

Copy link
Copy Markdown
Contributor Author

Hello @eteq,

This PR has two SOFA updates!

SOFA 20160503 : ERFA 1.2->1.3 and (3,0,2) -> (4,0,3)

SOFA 20160503_a: ERFA 1.3 -> 1.4 and (4,0,3) -> (4,0,4).

When @mhvk pointed out that SOFA 20160503_a was available, I thought I would add that as an update to 20160503 (ERFA 1.3) instead of replacing 20160503 (ERFA 1.3). The reasoning was that we have an ERFA version for each SOFA version. Since this PR took a while to process we will end up not having a release of 1.3 but if needed we can use git tags to find that version and build it. The README.rst file will have information on changes made from 1.2 -> 1.3.

Regards,
Prasanth

@mhvk

mhvk commented Aug 30, 2016

Copy link
Copy Markdown
Contributor

A propos versions, is there any reason we don't just follow the SOFA style (in which case this would be 12a)? Barring that, I guess we don't necessarily have to stick to one version per sofa version, but I'll leave this to @eteq to decide...

@eteq

eteq commented Aug 30, 2016 •

Copy link
Copy Markdown
Member

@phn - Ah, I get it now. The intent of the versioning in ERFA is not necessarily to follow exactly the SOFA releases. Think of ERFA as an independent package that happens to usually follow SOFA - in fact we have considered having bug fix releases "in between" SOFA releases, but so far it hasn't been necessary. This could certainly change, though, particularly at times when ERFA and SOFA might be partly diverged (e.g. if #7 ever comes into being, or we decide to add a more flexible approach to leap seconds).

So I would say just make this release "1.3.0" (and shared lib 4.0.3) and update the readme to just not mention the intermediate SOFA 20160503 (which now just won't be in ERFA).

@mhvk - In addition to the above (the fact that the releases are nominally decoupled from SOFA), we're trying to stick with semantic versioning for more consistency with other libraries. This was requested by the packagers for e.g. debian and Red Hat. FWIW, I really dislike the SOFA style of having a date that is not the release date - having 2016_05_03a released in July just feels wrong/confusing to me. (But that's just my opinion - the main driver is consistency with other libraries and versioning tools.)

@mhvk

mhvk commented Aug 30, 2016

Copy link
Copy Markdown
Contributor

OK, makes sense.

@phn

phn commented Aug 31, 2016 •

Copy link
Copy Markdown
Contributor Author

Hello @eteq,

I will make this 1.3 and (4.0.3).

But wouldn't it be better to mention in the README.rst file that this release of ERFA includes both SOFA versions, so that we(and also someone using it) can quickly see what went it. In a few months time I know I won't remember what I did without reading through the commits!

Edit:
Oops, spoke too soon. The latest SOFA includes files from previous version, and they have a good changelist, so there is no problem with doing what you say.

Regards,
Prasanth

This PR has two SOFA updates: 20160503 and 20160503_a. I had
set 1.3 (4.0.3) to correspond to 20160503 and 1.4 (5.0.4) to
20160503_a. There is no need for this as liberfa is not tied
to release schedule of SOFA. I am setting this release of
liberfa to 1.3 (4.0.3) (i.e., increment from 1.2 (3.0.2),
and it corresponds to SOFA 20160503_a.

In README.rst, I made the note that ERFA 1.3 has no changes with
respect to SOFA 20160503_a.
@eteq

eteq commented Sep 1, 2016

Copy link
Copy Markdown
Member

Looks great now, @phn . I will merge this and start the release process shortly. Thanks for your work on this!

@eteq
eteq merged commit 5039ec4 into liberfa:master Sep 1, 2016
@eteq

eteq commented Sep 6, 2016

Copy link
Copy Markdown
Member

To follow through on this, the release is now out - see https://github.com/liberfa/erfa/releases/download/v1.3.0/erfa-1.3.0.tar.gz

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.

New version of SOFA

3 participants