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

Please prepare/tag some versioned release ;-) #40

Closed
yarikoptic opened this issue Aug 13, 2013 · 47 comments
Closed

Please prepare/tag some versioned release ;-) #40

yarikoptic opened this issue Aug 13, 2013 · 47 comments

Comments

@yarikoptic
Copy link
Contributor

Time to update the Debian package but not even sure which point to look at ;)

@stnava
Copy link
Member

stnava commented Aug 13, 2013

Yes we already two weeks late On our goal of getting this done.

On Tuesday, August 13, 2013, Yaroslav Halchenko wrote:

Time to update the Debian package but not even sure which point to look at
;)


Reply to this email directly or view it on GitHubhttps://github.com//issues/40
.

brian

@yarikoptic
Copy link
Contributor Author

ah -- cool -- what will it be ? (the release version)

@stnava
Copy link
Member

stnava commented Aug 13, 2013

Fire ANTs

On 8/13/13, Yaroslav Halchenko notifications@github.com wrote:

ah -- cool -- what will it be ? (the release version)


Reply to this email directly or view it on GitHub:
#40 (comment)

brian

@stnava
Copy link
Member

stnava commented Aug 13, 2013

that is just a suggestion ...

i'd be ok with anything except 2.0 or similar

On 8/13/13, brian avants stnava@gmail.com wrote:

Fire ANTs

On 8/13/13, Yaroslav Halchenko notifications@github.com wrote:

ah -- cool -- what will it be ? (the release version)


Reply to this email directly or view it on GitHub:
#40 (comment)

brian

brian

@yarikoptic
Copy link
Contributor Author

so 1.99999 ? ;) my current working "version" for it is

1.9.2+svn680+git1417-g48ff309-1

;-)

@yarikoptic
Copy link
Contributor Author

btw -- will it be compatible with any released ITK?
is there 1 shout way to prevent build from downloading any external dependencies? I have specified -DUSE_SYSTEM_ITK:BOOL=ON -DANTS_USE_GIT_PROTOC:BOOL=OFF ... but I see it still going and fetching/building ITK

@yarikoptic
Copy link
Contributor Author

ok -- adding ANTS_SUPERBUILD:BOOL=OFF seems helped to avoid fetching/building ITK but it seems that even ITK 4.4.0 is not good enough (or possibly wasn't build as needs to be built for ANTs)... so I will just wait for your feedback on ITK4 version first

@stnava
Copy link
Member

stnava commented Aug 13, 2013

unsure - hans or kent would have to respond to this

hans, kent - now seems like as good a time as any to make an ants
tag.... how about it?

i was going to follow this procedure:

http://gitready.com/beginner/2009/02/03/tagging.html

On 8/13/13, Yaroslav Halchenko notifications@github.com wrote:

btw -- will it be compatible with any released ITK?
is there 1 shout way to prevent build from downloading any external
dependencies? I have specified -DUSE_SYSTEM_ITK:BOOL=ON -DANTS_USE_GIT_PROTOC:BOOL=OFF ... but I see it still going and
fetching/building ITK


Reply to this email directly or view it on GitHub:
#40 (comment)

brian

@yarikoptic
Copy link
Contributor Author

instructions sound reasonable -- just make sure to create annotated (-a) or signed (-s) tag as they say. lightweight tags (without -a or -s) are another beast

@yarikoptic
Copy link
Contributor Author

btw to refer to someone -- better to use @HISGITHUBLOGIN, e.g. @Chaircrusher (ken?) so they get notification for sure

@yarikoptic
Copy link
Contributor Author

BTW if of any value -- here is my build log http://www.onerussian.com/tmp/build.log-2 while having system ITK 4.4.0

@stnava
Copy link
Member

stnava commented Aug 13, 2013

@Chaircrusher and @hjmjohnson

see discussion below

On 8/13/13, Yaroslav Halchenko notifications@github.com wrote:

BTW if of any value -- here is my build log
http://www.onerussian.com/tmp/build.log-2 while having system ITK 4.4.0


Reply to this email directly or view it on GitHub:
#40 (comment)

brian

@satra
Copy link
Collaborator

satra commented Aug 13, 2013

i think including the float changes would be very good, but that's not in a released ITK yet, is it?

@Chaircrusher
Copy link
Collaborator

Ali Ghayoor has been enhancing ITK to allow for single precision
registration/transforms. He then started in on ANTs to bring it up to
speed on single precision registration/transforms. So his changes are

based on a post-4.4.0 version of ITK.

Kent Williams norman-k-williams@uiowa.edu

On 8/13/13 1:58 PM, "Yaroslav Halchenko" notifications@github.com wrote:

ok -- adding ANTS_SUPERBUILD:BOOL=OFF seems helped to avoid
fetching/building ITK but it seems that even ITK 4.4.0 is not good enough
(or possibly wasn't build as needs to be built for ANTs)... so I will
just wait for your feedback on ITK4 version
first

Reply to this email directly or
view it on GitHub
#40 (comment).


Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged. If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. Please reply to the sender that you have received the message in error, then delete it. Thank you.


@Chaircrusher
Copy link
Collaborator

Yeah, the exact problem is the new templated transform type.

Kent Williams norman-k-williams@uiowa.edu

On 8/13/13 2:08 PM, "Yaroslav Halchenko" notifications@github.com wrote:

BTW if of any value -- here is my build log
http://www.onerussian.com/tmp/build.log-2
http://www.onerussian.com/tmp/build.log-2 while having system ITK 4.4.0

Reply to this email directly or
view it on GitHub
#40 (comment).


Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged. If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. Please reply to the sender that you have received the message in error, then delete it. Thank you.


@yarikoptic
Copy link
Contributor Author

Thank you @Chaircrusher
Is that anything what could be "moduled-out" to be shipped under "Temporary/" for building against released ITK 4.4.0 until new ITK is out?

@Chaircrusher
Copy link
Collaborator

I don't think so. It's going to end up being pervasive.

Kent Williams norman-k-williams@uiowa.edu

On 8/14/13 9:15 AM, "Yaroslav Halchenko" notifications@github.com wrote:

Thank you @Chaircrusher https://github.com/Chaircrusher
Is that anything what could be "moduled-out" to be shipped under
"Temporary/" for building against released ITK 4.4.0 until new ITK is out?

Reply to this email directly or
view it on GitHub
#40 (comment).


Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged. If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. Please reply to the sender that you have received the message in error, then delete it. Thank you.


@stnava
Copy link
Member

stnava commented Aug 14, 2013

yes - the alternative is to tag an old version that works with 4.4

or wait for 4.5

brian

On Wed, Aug 14, 2013 at 10:47 AM, Kent Williams notifications@github.comwrote:

I don't think so. It's going to end up being pervasive.

Kent Williams norman-k-williams@uiowa.edu

On 8/14/13 9:15 AM, "Yaroslav Halchenko" notifications@github.com
wrote:

Thank you @Chaircrusher https://github.com/Chaircrusher
Is that anything what could be "moduled-out" to be shipped under
"Temporary/" for building against released ITK 4.4.0 until new ITK is
out?

Reply to this email directly or
view it on GitHub
#40 (comment).


Notice: This UI Health Care e-mail (including attachments) is covered by
the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is
confidential and may be legally privileged. If you are not the intended
recipient, you are hereby notified that any retention, dissemination,
distribution, or copying of this communication is strictly prohibited.
Please reply to the sender that you have received the message in error,
then delete it. Thank you.


Reply to this email directly or view it on GitHubhttps://github.com//issues/40#issuecomment-22640775
.

@yarikoptic
Copy link
Contributor Author

having a tag for 4.4-compatible version would be nice since then I could update Debian package at least to that state.

waiting for 4.5 is quite easy -- I can do that while doing nothing ;)

@Chaircrusher
Copy link
Collaborator

Hans has an alternate proposal, that I'm trying to implement.

The idea is to simply undo the changes Ali introduced to take advantage of
single precision transforms & registration on a branch, and then have a
release branch.

I'm testing the build now, but this seems like it will work.

I couldn't simply revert Ali's commit as Hans re-organized the
antsRegistration.cxx code -- moving DoRegistration to a header etc.

I don't know how exactly the 'release' should proceed but I think this
would work:

  1. I check in my branch with the 'revert Ali's single precision' changes.
    This is NOT merged immediately, and in fact should NEVER be merged.
  2. Changes needed to come to a good stopping point for a release should
    happen on the master branch.
  3. When everybody is happy with the current master, do this
    git rebase master RevertAliChanges
    This will be a version that is compatible with ITK 4.4.0
  4. Final testing.
  5. Tag the 'RevertAliChanges' as the release.

The master branch would incorporate the changes to support single
precision, and be dependent on ITK post-4.4.0

Then, when the next checkpoint release of ITK occurs, ANTs can have a new
release incorporating the single precision changes.

Kent Williams norman-k-williams@uiowa.edu

On 8/14/13 9:58 AM, "Yaroslav Halchenko" notifications@github.com wrote:

having a tag for 4.4-compatible version would be nice since then I could
update Debian package at least to that state.
waiting for 4.5 is quite easy -- I can do that while doing nothing ;)

Reply to this email directly or
view it on GitHub
#40 (comment).


Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged. If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. Please reply to the sender that you have received the message in error, then delete it. Thank you.


@Chaircrusher
Copy link
Collaborator

OK so here you go:

https://github.com/stnava/ANTs/tree/RevertSinglePrecisionChanges

This is a branch off 48ff30 which is the current master revision. It JUST
undoes the dependency on ITK post-4.4.0 development.

Kent Williams norman-k-williams@uiowa.edu

On 8/14/13 9:52 AM, "stnava" notifications@github.com wrote:

yes - the alternative is to tag an old version that works with 4.4

or wait for 4.5

brian

On Wed, Aug 14, 2013 at 10:47 AM, Kent Williams
notifications@github.comwrote:

I don't think so. It's going to end up being pervasive.

Kent Williams norman-k-williams@uiowa.edu

On 8/14/13 9:15 AM, "Yaroslav Halchenko" notifications@github.com
wrote:

Thank you @Chaircrusher https://github.com/Chaircrusher
Is that anything what could be "moduled-out" to be shipped under
"Temporary/" for building against released ITK 4.4.0 until new ITK is
out?

Reply to this email directly or
view it on GitHub
#40 (comment).


Notice: This UI Health Care e-mail (including attachments) is covered
by
the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is
confidential and may be legally privileged. If you are not the intended
recipient, you are hereby notified that any retention, dissemination,
distribution, or copying of this communication is strictly prohibited.
Please reply to the sender that you have received the message in error,
then delete it. Thank you.


Reply to this email directly or view it on
GitHubhttps://github.com//issues/40#issuecomment-22640775

.


Reply to this email directly or
view it on GitHub
#40 (comment).


Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged. If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. Please reply to the sender that you have received the message in error, then delete it. Thank you.


@Chaircrusher
Copy link
Collaborator

I just modified that branch so it checks out 4.4.0 ITK. It builds and passes tests...

https://github.com/stnava/ANTs/tree/RevertSinglePrecisionChanges

@hjmjohnson
Copy link
Collaborator

Kent,

Good work! If this is approved, a release should be tagged on github.

Hans

From: Kent Williams notifications@github.com
Reply-To: stnava/ANTs
<reply+i-18010630-1fa8e3e3a1804cfb1d867042252f05eca5edd4c1-313970@reply.gith
ub.com>
Date: Wednesday, August 14, 2013 12:27 PM
To: stnava/ANTs ANTs@noreply.github.com
Cc: Hans Johnson hans.j.johnson@gmail.com
Subject: Re: [ANTs] Please prepare/tag some versioned release ;-) (#40)

I just modified that branch so it checks out 4.4.0 ITK. It builds and
passes tests...

https://github.com/stnava/ANTs/tree/RevertSinglePrecisionChanges


Reply to this email directly or view it on GitHub
#40 (comment) .

@yarikoptic
Copy link
Contributor Author

Thank you Kent. I am building/testing on my (slow laptop) end. I will let you know if all good on my end whenever it is done

@hjmjohnson
Copy link
Collaborator

Brian @stnava ,

Can you please make the release on github? Thanks, Hans

@stnava
Copy link
Member

stnava commented Aug 14, 2013

yes, will do once we hear from yarik.

brian

On Wed, Aug 14, 2013 at 2:17 PM, hjmjohnson notifications@github.comwrote:

Brian @stnava https://github.com/stnava ,

Can you please make the release on github? Thanks, Hans


Reply to this email directly or view it on GitHubhttps://github.com//issues/40#issuecomment-22655753
.

@hjmjohnson
Copy link
Collaborator

It should be possible to remove the floating point capabilities of ANTS as a
branch. It may be as easy as a bit of git magic to revert the patch that
added floating point capabilities, (or it will be several days of fighting
with conflicts).

Hans

From: Kent Williams notifications@github.com
Reply-To: stnava/ANTs
<reply+i-18010630-1fa8e3e3a1804cfb1d867042252f05eca5edd4c1-313970@reply.gith
ub.com>
Date: Wednesday, August 14, 2013 9:47 AM
To: stnava/ANTs ANTs@noreply.github.com
Cc: Hans Johnson hans.j.johnson@gmail.com
Subject: Re: [ANTs] Please prepare/tag some versioned release ;-) (#40)

I don't think so. It's going to end up being pervasive.

Kent Williams norman-k-williams@uiowa.edu

On 8/14/13 9:15 AM, "Yaroslav Halchenko" notifications@github.com wrote:

Thank you @Chaircrusher https://github.com/Chaircrusher
Is that anything what could be "moduled-out" to be shipped under
"Temporary/" for building against released ITK 4.4.0 until new ITK is out?

Reply to this email directly or
view it on GitHub
#40 (comment).


Notice: This UI Health Care e-mail (including attachments) is covered by the
Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential
and may be legally privileged. If you are not the intended recipient, you
are hereby notified that any retention, dissemination, distribution, or
copying of this communication is strictly prohibited. Please reply to the
sender that you have received the message in error, then delete it. Thank
you.



Reply to this email directly or view it on GitHub
#40 (comment) .

@yarikoptic
Copy link
Contributor Author

Sorry about the delay -- had to restart build on some reasonable box ;) It built successfully.

232 tests (I have built with RUN_SHORT_TESTS on, and for some reason rpath wasn't set to point to library so had to LD_LIBRARY_PATH-adjust) passed.

Also you might like to look into all those fuzz-testing "Mayhem" bugs reported on Debian: http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=ants;dist=unstable . current build bin/ANTS simply segfaults if I run it without any cmdline arguments (not kosher!!!! ;) )

For Debian packaging I am yet to decide what to do with ExternalData -- either "package it in" since so far it seems only few megabytes, or provide a separate package for it... also figure out either original datasets it belongs to are copyrighted and under what terms etc... heh heh . Those data files -- are they quite static or change quite often (e.g. between ANTs... ok -- ITK releases)?

BTW -- is there somewhere a complete list of what all those MD5'named files on http://www.itk.org/files/ExternalData/ correspond to? did anyone consider placing them under git-annex and linking such a repository for ExternalData as a git submodule?

@Chaircrusher
Copy link
Collaborator

The external data is stored on http://midas.kitware.com -- then a CMake macro set manages downloading test data on demand. I don't think that for the purposes of the Debian package that you'd need to play any games to support testing, getting test data is part of the build process, and it's done on demand.

As far as I know, all the test data is anonmyzed and public domain.

I believe Hans implemented most of the MIDAS stuff, maybe he can explain this better.

The zero arguments crash is simple enough to fix. I think the problem is in ANTs.cxx -- it doesn't ever check for argc < 2 -- that could be done at the very top of the ANTS function. I see where @stnava has actually commented out some of the sanity checks at the top, maybe he needs to revisit that stuff?

@yarikoptic
Copy link
Contributor Author

Thank you @Chaircrusher for the clarifications

getting test data is part of the build process, and it's done on demand

Debian source package should be self-sufficient and shouldn't get anything from the network upon building binary packages, where I exercise tests to verify correct operation of any given build. You can easily see why it is required to have ALL resources (code and data) available happen you want to guarantee robust building and self-sufficiency of source packages.

@stnava
Copy link
Member

stnava commented Aug 15, 2013

perhaps you should turn testing off ...

also, it's easy to fix the ANTS bug which has been there so long that we
are attached to it.

brian

On Thu, Aug 15, 2013 at 10:06 AM, Yaroslav Halchenko <
notifications@github.com> wrote:

Thank you @Chaircrusher https://github.com/Chaircrusher for the
clarifications

getting test data is part of the build process, and it's done on demand

Debian source package should be self-sufficient and shouldn't get anything
from the network upon building binary packages, where I exercise tests to
verify correct operation of any given build. You can easily see why it is
required to have ALL resources (code and data) available happen you want to
guarantee robust building and self-sufficiency of source packages.


Reply to this email directly or view it on GitHubhttps://github.com//issues/40#issuecomment-22704841
.

@Chaircrusher
Copy link
Collaborator

Yeah build the package without testing. You're not going to be able to ship it with all the test data without completely rewriting the cmake testing code. If someone wants to test ANTs on debian they can build it from source like the rest of us.

@stnava
Copy link
Member

stnava commented Aug 15, 2013

i pushed the ANTS bug fix to the RevertSinglePrecisionChanges

next step ( if everyone is ready )

git tag -a HoneyPot -m "ANTs based on ITKv4.4, double precision."

git push --tags

everyone ok with that?

brian

On Thu, Aug 15, 2013 at 10:16 AM, Kent Williams notifications@github.comwrote:

Yeah build the package without testing. You're not going to be able to
ship it with all the test data without completely rewriting the cmake
testing code. If someone wants to test ANTs on debian they can build it
from source like the rest of us.


Reply to this email directly or view it on GitHubhttps://github.com//issues/40#issuecomment-22705447
.

@stnava
Copy link
Member

stnava commented Aug 15, 2013

so i just went ahead and pushed it up ... now you can do :

git tag -n

HoneyPot ANTs based on ITKv4.4, double precision.

brian

On Thu, Aug 15, 2013 at 10:27 AM, brian avants stnava@gmail.com wrote:

i pushed the ANTS bug fix to the RevertSinglePrecisionChanges

next step ( if everyone is ready )

git tag -a HoneyPot -m "ANTs based on ITKv4.4, double precision."

git push --tags

everyone ok with that?

brian

On Thu, Aug 15, 2013 at 10:16 AM, Kent Williams notifications@github.comwrote:

Yeah build the package without testing. You're not going to be able to
ship it with all the test data without completely rewriting the cmake
testing code. If someone wants to test ANTs on debian they can build it
from source like the rest of us.


Reply to this email directly or view it on GitHubhttps://github.com//issues/40#issuecomment-22705447
.

@yarikoptic
Copy link
Contributor Author

nah guys -- I really want at least some testing at build time. I do want to have some QA that ANTs works correctly across different platforms and releases of core libraries in setups you might not be testing on. I will check later what would be the easiest way to get it working -- test data seems to be not that big.

as for the tag @stnava -- I hope there would also be a simple version tag (e.g. 2.0 instead or in-addition to codename HoneyPot tag if I got your comment right)... atm can't even fetch anyways:

fatal: unable to connect to github.com:
github.com[0: 204.232.175.90]: errno=Connection timed out

ok -- got back online, indeed missing versioned tag -- please cook one up as well ;-)

@hjmjohnson
Copy link
Collaborator

My feeling is that the Debian testing requirements are too restrictive.
Given limited resources, I would rather NOT re-write the testing framework.
NOTE: ITK, Slicer, BRAINS, ANTS, and many other packages are using this
same paradigm for their test suite in order to overcome the inherent
problems of in-source test data.

We have looked at many other options, and reviewed the github options, and
the subtree paradigms. None of those worked very well.

Hans

From: Yaroslav Halchenko notifications@github.com
Reply-To: stnava/ANTs
<reply+i-18010630-1fa8e3e3a1804cfb1d867042252f05eca5edd4c1-313970@reply.gith
ub.com>
Date: Thursday, August 15, 2013 11:20 AM
To: stnava/ANTs ANTs@noreply.github.com
Cc: Hans Johnson hans.j.johnson@gmail.com
Subject: Re: [ANTs] Please prepare/tag some versioned release ;-) (#40)

nah guys -- I really want at least some testing at build time. I do want to
have some QA that ANTs works correctly across different platforms and
releases of core libraries in setups you might not be testing on. I will
check later what would be the easiest way to get it working -- test data
seems to be not that big.

as for the tag @stnava https://github.com/stnava -- I hope there would
also be a simple version tag (e.g. 2.0 instead or in-addition to codename
HoneyPot tag if I got your comment right)... atm can't even fetch anyways:
fatal: unable to connect to github.com:
github.com[0: 204.232.175.90]: errno=Connection timed out
ok -- got back online, indeed missing versioned tag -- please cook one up as
well ;-)


Reply to this email directly or view it on GitHub
#40 (comment) .

@stnava
Copy link
Member

stnava commented Aug 15, 2013

how about

git tag -a HoneyPot-0.0

?

brian

On Thu, Aug 15, 2013 at 12:20 PM, Yaroslav Halchenko <
notifications@github.com> wrote:

nah guys -- I really want at least some testing at build time. I do want
to have some QA that ANTs works correctly across different platforms and
releases of core libraries in setups you might not be testing on. I will
check later what would be the easiest way to get it working -- test data
seems to be not that big.

as for the tag @stnava https://github.com/stnava -- I hope there would
also be a simple version tag (e.g. 2.0 instead or in-addition to codename
HoneyPot tag if I got your comment right)... atm can't even fetch anyways:

fatal: unable to connect to github.com:github.com[0: 204.232.175.90]: errno=Connection timed out

ok -- got back online, indeed missing versioned tag -- please cook one up
as well ;-)


Reply to this email directly or view it on GitHubhttps://github.com//issues/40#issuecomment-22711668
.

@yarikoptic
Copy link
Contributor Author

My feeling is that the Debian testing requirements are too restrictive.

There are no Debian testing requirements. I (personally) prefer and where applicable advocate enabling testing at package build time. When maintaining dozens of projects it is much better/time-efficient/etc to detect/resolve issues before shipping a package out for public use instead of troubleshooting bugs later trying to replicate them etc. There are various additional benefits from it as well (ability to easily do down-stream testing for new releases of core libraries, access to hardware architectures none single other project has available, etc).

Given limited resources, I would rather NOT re-write the testing framework.

Yikes -- I do hope that it is not that rigid as to require rewriting the whole testing framework. Worse comes to worse I might simply "serve" via http the "mirror" of the needed files from http://midas.kitware.com from an ExternalData directory within ANTs tree I would ship within a package ... but I bet there should be a simple solution to get -- I haven't looked yet

@hjmjohnson
Copy link
Collaborator

Brian,

http://semver.org/

I would like to follow the conventions of the rest of the world if possible?
Following a convention will make it easier to integrate ANTS with other
packages in a rational and well defined way.

Hans

From: stnava notifications@github.com
Reply-To: stnava/ANTs
<reply+i-18010630-1fa8e3e3a1804cfb1d867042252f05eca5edd4c1-313970@reply.gith
ub.com>
Date: Thursday, August 15, 2013 12:05 PM
To: stnava/ANTs ANTs@noreply.github.com
Cc: Hans Johnson hans.j.johnson@gmail.com
Subject: Re: [ANTs] Please prepare/tag some versioned release ;-) (#40)

how about

git tag -a HoneyPot-0.0

?

brian

On Thu, Aug 15, 2013 at 12:20 PM, Yaroslav Halchenko <
notifications@github.com> wrote:

nah guys -- I really want at least some testing at build time. I do want
to have some QA that ANTs works correctly across different platforms and
releases of core libraries in setups you might not be testing on. I will
check later what would be the easiest way to get it working -- test data
seems to be not that big.

as for the tag @stnava https://github.com/stnava -- I hope there would
also be a simple version tag (e.g. 2.0 instead or in-addition to codename
HoneyPot tag if I got your comment right)... atm can't even fetch anyways:

fatal: unable to connect to github.com:github.com[0: 204.232.175.90]:
errno=Connection timed out

ok -- got back online, indeed missing versioned tag -- please cook one up
as well ;-)


Reply to this email directly or view it on
GitHubhttps://github.com//issues/40#issuecomment-22711668
.


Reply to this email directly or view it on GitHub
#40 (comment) .

@Chaircrusher
Copy link
Collaborator

@yarikoptic if you want testing, the only tenable way I can see to do it is to have separate tests with a small set of input data checked in with the source. I'd even guard the existing tests (that download their data from a MIDAS server) so they aren't visible in the Debian package.

Even better, if all you care about is the nominal function of the programs, generate some synthetic images at build time and test using them.

It simply isn't practical to hack into the MIDAS/ExternalData testing infrastructure. For one thing those are non-trivial CMake modules, that would be a challenge to understand and easy to break. For another, if ANTs diverges too much from the standard CMake infrastructure for testing, it makes maintainence a nightmare.

@stnava
Copy link
Member

stnava commented Aug 15, 2013

ok - so

HoneyPot-1.0.0 ?

or must it be

v1.0.0 ?

if that is the case then the only choice is

v2.0.0

brian

On Thu, Aug 15, 2013 at 1:58 PM, hjmjohnson notifications@github.comwrote:

Brian,

http://semver.org/

I would like to follow the conventions of the rest of the world if
possible?
Following a convention will make it easier to integrate ANTS with other
packages in a rational and well defined way.

Hans

From: stnava notifications@github.com
Reply-To: stnava/ANTs

<reply+i-18010630-1fa8e3e3a1804cfb1d867042252f05eca5edd4c1-313970@reply.gith
ub.com>
Date: Thursday, August 15, 2013 12:05 PM
To: stnava/ANTs ANTs@noreply.github.com
Cc: Hans Johnson hans.j.johnson@gmail.com
Subject: Re: [ANTs] Please prepare/tag some versioned release ;-) (#40)

how about

git tag -a HoneyPot-0.0

?

brian

On Thu, Aug 15, 2013 at 12:20 PM, Yaroslav Halchenko <
notifications@github.com> wrote:

nah guys -- I really want at least some testing at build time. I do want
to have some QA that ANTs works correctly across different platforms and
releases of core libraries in setups you might not be testing on. I will
check later what would be the easiest way to get it working -- test data
seems to be not that big.

as for the tag @stnava https://github.com/stnava -- I hope there
would
also be a simple version tag (e.g. 2.0 instead or in-addition to
codename
HoneyPot tag if I got your comment right)... atm can't even fetch
anyways:

fatal: unable to connect to github.com:github.com[0: 204.232.175.90]:
errno=Connection timed out

ok -- got back online, indeed missing versioned tag -- please cook one
up
as well ;-)


Reply to this email directly or view it on
GitHubhttps://github.com//issues/40#issuecomment-22711668
.


Reply to this email directly or view it on GitHub
#40 (comment) .


Reply to this email directly or view it on GitHubhttps://github.com//issues/40#issuecomment-22717805
.

@yarikoptic
Copy link
Contributor Author

tangentially related -- why do you have two copies of different versions I guess of this ExternalData.cmake testing?

$> diff BuildScripts/ExternalData.cmake CMake/ExternalData.cmake  | grep Copyright
< # Copyright 2010-2011 Kitware, Inc.
> # Copyright 2010-2013 Kitware, Inc.

$> head BuildScripts/ExternalData.cmake CMake/ExternalData.cmake                 
==> BuildScripts/ExternalData.cmake <==
# - Manage data files stored outside source tree
# Use this module to unambiguously reference data files stored outside the
# source tree and fetch them at build time from arbitrary local and remote
# content-addressed locations.  Functions provided by this module recognize
# arguments with the syntax "DATA{<name>}" as references to external data,
# replace them with full paths to local copies of those data, and create build
# rules to fetch and update the local copies.
#
# The DATA{} syntax is literal and the <name> is a full or relative path
# within the source tree.  The source tree must contain either a real data

==> CMake/ExternalData.cmake <==
# - Manage data files stored outside source tree
# Use this module to unambiguously reference data files stored outside the
# source tree and fetch them at build time from arbitrary local and remote
# content-addressed locations.  Functions provided by this module recognize
# arguments with the syntax "DATA{<name>}" as references to external data,
# replace them with full paths to local copies of those data, and create build
# rules to fetch and update the local copies.
#
# The DATA{} syntax is literal and the <name> is a full or relative path
# within the source tree.  The source tree must contain either a real data

@hjmjohnson
Copy link
Collaborator

The one in "BuildScripts/ExternalData.cmake" should be deleted.

Hans

From: Yaroslav Halchenko notifications@github.com
Reply-To: stnava/ANTs
<reply+i-18010630-1fa8e3e3a1804cfb1d867042252f05eca5edd4c1-313970@reply.gith
ub.com>
Date: Thursday, August 15, 2013 1:50 PM
To: stnava/ANTs ANTs@noreply.github.com
Cc: Hans Johnson hans.j.johnson@gmail.com
Subject: Re: [ANTs] Please prepare/tag some versioned release ;-) (#40)

tangentially related -- why do you have two copies of different versions I
guess of this ExternalData.cmake testing?
$> diff BuildScripts/ExternalData.cmake CMake/ExternalData.cmake | grep
Copyright
< # Copyright 2010-2011 Kitware, Inc.

Copyright 2010-2013 Kitware, Inc.

$> head BuildScripts/ExternalData.cmake CMake/ExternalData.cmake
==> BuildScripts/ExternalData.cmake <==

- Manage data files stored outside source tree

Use this module to unambiguously reference data files stored outside the

source tree and fetch them at build time from arbitrary local and remote

content-addressed locations. Functions provided by this module recognize

arguments with the syntax "DATA{}" as references to external data,

replace them with full paths to local copies of those data, and create

build

rules to fetch and update the local copies.

The DATA{} syntax is literal and the is a full or relative path

within the source tree. The source tree must contain either a real data

==> CMake/ExternalData.cmake <==

- Manage data files stored outside source tree

Use this module to unambiguously reference data files stored outside the

source tree and fetch them at build time from arbitrary local and remote

content-addressed locations. Functions provided by this module recognize

arguments with the syntax "DATA{}" as references to external data,

replace them with full paths to local copies of those data, and create

build

rules to fetch and update the local copies.

The DATA{} syntax is literal and the is a full or relative path

within the source tree. The source tree must contain either a real data


Reply to this email directly or view it on GitHub
#40 (comment) .

@yarikoptic
Copy link
Contributor Author

@Chaircrusher

It simply isn't practical to hack into the MIDAS/ExternalData testing infrastructure.

My huge hack for the mighty testing infrastructure will be:

$> cat ants/debian/patches/deb_path_to_testdata 
--- a/CMake/ANTSExternalData.cmake
+++ b/CMake/ANTSExternalData.cmake
@@ -19,6 +19,8 @@
   file(MAKE_DIRECTORY "${ExternalData_OBJECT_STORES}")
 endif()
 list(APPEND ExternalData_OBJECT_STORES
+  # Location of shipped testing data in Debian source package
+  "${CMAKE_SOURCE_DIR}/testdata/ExternalData"
   # Local data store populated by the ITK pre-commit hook
   "${CMAKE_SOURCE_DIR}/.ExternalData"
   )
@@ -30,6 +32,8 @@
 file:///var/bigharddrive/%(algo)/%(hash)")
 mark_as_advanced(ExternalData_URL_TEMPLATES)
 list(APPEND ExternalData_URL_TEMPLATES
+  # Location of shipped testing data in Debian source package
+  "file:///${${PROJECT_NAME}_SOURCE_DIR}/testdata/ExternalData/Objects/%(algo)/%(hash)"
   # Local data store populated by the ITK pre-commit hook
   "file:///${${PROJECT_NAME}_SOURCE_DIR}/.ExternalData/%(algo)/%(hash)"
   # Data published by Iowa Psychiatry web interface

while I ship 1 additional tarball associated with the release providing testdata directory with the ExternalData needed for that pack of tests I would like to be ran. That results in ExternalData being "fetched" from file:// location just happily

[ 92%] Generating /home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu/ExternalData/TestData/Data/r16slice.nii.gz
cd /home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu/Examples/TestSuite && /usr/bin/cmake -Drelative_top=/home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu -Dfile=/home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu/ExternalData/TestData/Data/r16slice.nii.gz -Dname=/home/yoh/deb/gits/pkg-exppsy/ants/TestData/Data/r16slice.nii.gz -Dext=.md5 -DExternalData_ACTION=fetch -DExternalData_CONFIG=/home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu/Examples/TestSuite/ANTSFetchData_config.cmake -P /home/yoh/deb/gits/pkg-exppsy/ants/BuildScripts/ExternalData.cmake
-- Fetching "file:////home/yoh/deb/gits/pkg-exppsy/ants/testdata/ExternalData/Objects/MD5/37aaa33029410941bf4affff0479fa18"
-- [download 25% complete]
-- [download 49% complete]
-- [download 74% complete]
-- [download 99% complete]
-- [download 100% complete]
-- Downloaded object: "/home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu/ExternalData/Objects/MD5/37aaa33029410941bf4affff0479fa18"

and tests running just fine as well

@stnava
Copy link
Member

stnava commented Aug 18, 2013

ok - so we have v2.0.0 and it's called HoneyPot which is indeed a type of
ant

so is everyone ( yarik ) happy with this and can this soon be released /
pushed to neurodebian ?

brian

On Fri, Aug 16, 2013 at 10:38 AM, Yaroslav Halchenko <
notifications@github.com> wrote:

@Chaircrusher https://github.com/Chaircrusher

It simply isn't practical to hack into the MIDAS/ExternalData testing
infrastructure.

My huge hack for the mighty testing infrastructure will be:

$> cat ants/debian/patches/deb_path_to_testdata
--- a/CMake/ANTSExternalData.cmake
+++ b/CMake/ANTSExternalData.cmake
@@ -19,6 +19,8 @@
file(MAKE_DIRECTORY "${ExternalData_OBJECT_STORES}")
endif()
list(APPEND ExternalData_OBJECT_STORES

  • Location of shipped testing data in Debian source package

  • "${CMAKE_SOURCE_DIR}/testdata/ExternalData"

Local data store populated by the ITK pre-commit hook

"${CMAKE_SOURCE_DIR}/.ExternalData"
)
@@ -30,6 +32,8 @@
file:///var/bigharddrive/%(algo)/%(hash)")
mark_as_advanced(ExternalData_URL_TEMPLATES)
list(APPEND ExternalData_URL_TEMPLATES

  • Location of shipped testing data in Debian source package

  • "file:///${${PROJECT_NAME}_SOURCE_DIR}/testdata/ExternalData/Objects/%(algo)/%(hash)"

Local data store populated by the ITK pre-commit hook

"file:///${${PROJECT_NAME}_SOURCE_DIR}/.ExternalData/%(algo)/%(hash)"

Data published by Iowa Psychiatry web interface

while I ship 1 additional tarball associated with the release providing
testdata directory with the ExternalData needed for that pack of tests I
would like to be ran. That results in ExternalData being "fetched" from
file:// location just happily

[ 92%] Generating /home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu/ExternalData/TestData/Data/r16slice.nii.gz
cd /home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu/Examples/TestSuite && /usr/bin/cmake -Drelative_top=/home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu -Dfile=/home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu/ExternalData/TestData/Data/r16slice.nii.gz -Dname=/home/yoh/deb/gits/pkg-exppsy/ants/TestData/Data/r16slice.nii.gz -Dext=.md5 -DExternalData_ACTION=fetch -DExternalData_CONFIG=/home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu/Examples/TestSuite/ANTSFetchData_config.cmake -P /home/yoh/deb/gits/pkg-exppsy/ants/BuildScripts/ExternalData.cmake
-- Fetching "file:////home/yoh/deb/gits/pkg-exppsy/ants/testdata/ExternalData/Objects/MD5/37aaa33029410941bf4affff0479fa18"
-- [download 25% complete]
-- [download 49% complete]
-- [download 74% complete]
-- [download 99% complete]
-- [download 100% complete]
-- Downloaded object: "/home/yoh/deb/gits/pkg-exppsy/ants/obj-x86_64-linux-gnu/ExternalData/Objects/MD5/37aaa33029410941bf4affff0479fa18"

and tests running just fine as well


Reply to this email directly or view it on GitHubhttps://github.com//issues/40#issuecomment-22769723
.

@yarikoptic
Copy link
Contributor Author

On Sun, 18 Aug 2013, stnava wrote:

ok - so we have v2.0.0 and it's called HoneyPot which is indeed a type of
ant
so is everyone ( yarik ) happy with this and can this soon be released /
pushed to neurodebian ?

I will look into finishing updating packaging/testing it out tomorrow.
So far everything looked good and now there is even a version -- nothing
can stop us now ! ;) I should also think about what todo backport
builds for older Debian(/Ubuntu) releases.

Cheers,

Yaroslav O. Halchenko, Ph.D.
http://neuro.debian.net http://www.pymvpa.org http://www.fail2ban.org
Senior Research Associate, Psychological and Brain Sciences Dept.
Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755
Phone: +1 (603) 646-9834 Fax: +1 (603) 646-1419
WWW: http://www.linkedin.com/in/yarik

@yarikoptic
Copy link
Contributor Author

This is a discussion toward 2.0.0 release which did happen and was uploaded to Debian. Thus closing

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

No branches or pull requests

5 participants