szaghi / FLAP

Fortran command Line Arguments Parser for poor people
150 stars 34 forks source link

Tag/Release compressed package does not contains submodules sources #70

Closed victorsndvg closed 7 years ago

victorsndvg commented 7 years ago

Hi @szaghi ,

I've seen that when you create tags in Github, a .zip or .tgz file is created. This file does not contains the submodules sources, and finally the project will not compile! ...

This is not a FLAP issue ... but, as I usually do :wink: , I looked into your repositories and I discover that this is also happening with FLAP.

I've been googling but I don't find a solution to this problem. Do you know how I can solve this?

Thanks in advance!

szaghi commented 7 years ago

@victorsndvg

Dear Victor you are right, indeed I was searching some references just these days about this topic. I have used to prefix my release tag with v just because I was exploiting the automatic generation of archives by GitHub API. As you said, the archives do not contain the submodule data, but currently I am not aware on how to fix this (maybe a git hook). The alternative could be manually upload releases archives, but I am too lazy :smile:

Let me some time for my nightly readings...

szaghi commented 7 years ago

@victorsndvg bad news... see this http://stackoverflow.com/questions/34719785/how-to-add-submodule-files-to-a-github-release

Probably we should go with our in-house script/git-hook... stay tuned.

szaghi commented 7 years ago

@victorsndvg

Travis CI could be (again) our great friend, see this https://docs.travis-ci.com/user/deployment/releases/

victorsndvg commented 7 years ago

Thank you @szaghi !

As a start point, I'm going to upload a handmade compressed package and then I will try to read something about Travis CI

szaghi commented 7 years ago

@victorsndvg

I just setup a decent solution. I am now exploiting Travis CI automatic deploy for uploading (automatically for each release) a fully-appended release archive. For example the new release v1.1.3 has such a new archive.

The dirty solution is based on 2 modifications:

Pros

Cons

Conclusions

For the moment, I am satisfied by this dirty solution, maybe we can setup a cleaver/clean fix. What do you think?

zbeekman commented 7 years ago

If you're using git archive to create archives, you can specify the output name (and also a prefix---i.e., inserting a top level directory in the Tarbell like FLAP-x.y.z/). You can get the tag name using git describe, assuming your checked out at the tag in question.

szaghi commented 7 years ago

@zbeekman Thanks!

Yes, I know git describe, and nope, I am not using git archive because to recursively archive all submodules is a PITA. I am exploiting Travis CI deploy: after I have done all Travis CI tests (coverage/deploy doc), I go to deploy a new asset as the main archive release containing all necessary data (done by means of FoBiS executed into the Travis CI fresh cloned repo). My problem is to expand the tag version into the Travis environment.

zbeekman commented 7 years ago

I'm not sure what you mean "expand the tag version". I think you should be able to use git describe on Travis, and if not, then there's also the Travis environment variable, $TRAVIS_TAG

szaghi commented 7 years ago

@zbeekman I meant, I was not aware of $TAVIS_TAG that was the env I was searching for :tada: :tada: Great Zaak!

To expand the reply: yes, I was using git describe on Travis for example into a script, but I was not sure how to expand => put into a .travis.yml global variable the result of git describe.

szaghi commented 7 years ago

@zbeekman works perfectly... FLAP-v1.1.5.tar.gz, thank you!

victorsndvg commented 7 years ago

Great @szaghi and @zbeekman !

Problem fixed in an elegant way (as always).

I think that I can close this issue.

Thanks for your help!

szaghi commented 7 years ago

@victorsndvg tomorrow I'll modify the logic: it could be nice to have the install script as a separate asset that can be dowload alongside the whole release archive... just a minimal amend to travis setup