dCache / dcache

dCache - a system for storing and retrieving huge amounts of data, distributed among a large number of heterogenous server nodes, under a single virtual filesystem tree with a variety of standard access methods
https://dcache.org
291 stars 136 forks source link

Trunk can only be built from a repo clone, not from a downloaded zip file #2659

Open jstarek opened 8 years ago

jstarek commented 8 years ago

Github offers users to download project trees as zip files. Doing so with dCache results in a source tree that can't be used to build the project. mvn package results in

[INFO] ------------------------------------------------------------------------
[INFO] Building dCache parent 2.17.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- git-commit-id-plugin:2.2.0:revision (default) @ dcache-parent ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Logback config for building and testing ............ SUCCESS [  0.575 s]
[INFO] dCache parent ...................................... FAILURE [  0.160 s]
[INFO] Logback config for console output .................. SKIPPED
[INFO] dCache common ...................................... SKIPPED
[INFO] CLI framework ...................................... SKIPPED
[INFO] dCache common authentication ....................... SKIPPED
[INFO] cells .............................................. SKIPPED
[INFO] gPlazma 2 .......................................... SKIPPED
[INFO] gPlazma 2 Argus plugin ............................. SKIPPED
[INFO] gPlazma 2 grid plugins ............................. SKIPPED
[INFO] gPlazma 2 Kerberos plugin .......................... SKIPPED
[INFO] gPlazma 2 JAAS plugin .............................. SKIPPED
[INFO] gPlazma 2 Network Information Service plugin ....... SKIPPED
[INFO] gPlazma 2 Name Service Switch plugin ............... SKIPPED
[INFO] gPlazma 2 principal ban file plugin ................ SKIPPED
[INFO] gPlazma 2 VOMS plugin .............................. SKIPPED
[INFO] gPlazma 2 KPWD plugin .............................. SKIPPED
[INFO] FTP client ......................................... SKIPPED
[INFO] SRM Common ......................................... SKIPPED
[INFO] gPlazma 2 XACML plugin ............................. SKIPPED
[INFO] gPlazma 2 LDAP plugin .............................. SKIPPED
[INFO] gPlazma 2 htpasswd plugin .......................... SKIPPED
[INFO] gPlazma 2 Openid Connect plugin .................... SKIPPED
[INFO] gPlazma 2 Multi Mapping Plugin ..................... SKIPPED
[INFO] NFS 4.1 ACL Vehicles ............................... SKIPPED
[INFO] dCache Vehicles .................................... SKIPPED
[INFO] dCache Nearline Storage SPI ........................ SKIPPED
[INFO] NFS 4.1 ACL ........................................ SKIPPED
[INFO] Chimera ............................................ SKIPPED
[INFO] dCache Core ........................................ SKIPPED
[INFO] dCache Chimera name space provider ................. SKIPPED
[INFO] dCache FTP ......................................... SKIPPED
[INFO] dCache resilience handling provider ................ SKIPPED
[INFO] SRM Server ......................................... SKIPPED
[INFO] dCache Space Manager ............................... SKIPPED
[INFO] dCache SRM ......................................... SKIPPED
[INFO] dCache RESTful API ................................. SKIPPED
[INFO] dCache WebDAV ...................................... SKIPPED
[INFO] dCache xrootd ...................................... SKIPPED
[INFO] dCache DCAP ........................................ SKIPPED
[INFO] dCache gPlazma support ............................. SKIPPED
[INFO] dCache Info Service ................................ SKIPPED
[INFO] webadmin ........................................... SKIPPED
[INFO] dCache NFSv4.1/pNFS ................................ SKIPPED
[INFO] SRM Client ......................................... SKIPPED
[INFO] missing-files SEMsg plugin ......................... SKIPPED
[INFO] dCache plugins ..................................... SKIPPED
[INFO] HSQLDB plugin ...................................... SKIPPED
[INFO] dCache packaging base .............................. SKIPPED
[INFO] dCache FHS layout .................................. SKIPPED
[INFO] dCache tarball packaging ........................... SKIPPED
[INFO] System tests ....................................... SKIPPED
[INFO] dCache archetypes base ............................. SKIPPED
[INFO] dCache Nearline Storage Plugin Archetype ........... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.390 s
[INFO] Finished at: 2016-07-21T17:04:23+02:00
[INFO] Final Memory: 28M/216M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal pl.project13.maven:git-commit-id-plugin:2.2.0:revision (default) on project dcache-parent: .git directory could not be found! Please specify a valid [dotGitDirectory] in your pom.xml -> [Help 1]

Do we just want to document this or should this be considered a bug?

paulmillar commented 8 years ago

It's probably a bug: we probably should support building dCache without git.

That said, it is moderately unlikely that people would download the source like this: git is a very powerful tool compared to working with plain files in a zip container.

kofemann commented 8 years ago

well, zip file (tar file) is typical for building packages from srpm (not that we do that)

paulmillar commented 8 years ago

That's a good point. This is something we will need to fix if we need to produce SRPMs.

jstarek commented 7 years ago

Revisiting this... According to the documentation of the maven-git-commit-id-plugin, the following configuration option in the main POM should allow the build to run through, while losing the git IDs:

<!-- @since 2.0.4 -->
<!-- true by default, controls whether the plugin will fail when no .git directory is found, when set to false the plugin will just skip execution -->                    
<failOnNoGitDirectory>true</failOnNoGitDirectory>

Useful or harmful?

paulmillar commented 7 years ago

What happened when you tested this -- in particular, what values are set for places that depend on the current code-base?