You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Jonathan Coveney (Created) (JIRA)" <ji...@apache.org> on 2011/11/17 06:18:51 UTC

[jira] [Created] (PIG-2380) Expose version information more cleanly

Expose version information more cleanly
---------------------------------------

                 Key: PIG-2380
                 URL: https://issues.apache.org/jira/browse/PIG-2380
             Project: Pig
          Issue Type: Improvement
            Reporter: Jonathan Coveney
            Assignee: Jonathan Coveney
            Priority: Minor
             Fix For: 0.11
         Attachments: PIG2380.patch

Currently, there is no clean way to get version information (short of trying to instantiate a class that only exists in the version you want and catching an exception, or something like that). This patch exposes major, minor, patch, svn revision, and build time (basically, all of the pieces of the current version).

Example:
{code}
import org.apache.pig.Main;

public class Thing {
  public static void main(String[] args) {
    System.out.println(Main.getMajorVersion());
    System.out.println(Main.getMinorVersion());
    System.out.println(Main.getPatchVersion());
    System.out.println(Main.getSvnRevision());
    System.out.println(Main.getBuildTime());
  }
}
{code}

will return

{code}
0
11
0
1202387
Nov 15 2011, 15:37:14
0
{code}

which comprises

{code}
Apache Pig version 0.11.0-SNAPSHOT (r1202387) 
compiled Nov 15 2011, 15:37:14
{code}

I've run ant test-commit, but not ant test. This can easily be ported to old version, but I only tested it against trunk.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (PIG-2380) Expose version information more cleanly

Posted by "Jonathan Coveney (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PIG-2380?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Coveney updated PIG-2380:
----------------------------------

    Attachment: PIG2380.patch
    
> Expose version information more cleanly
> ---------------------------------------
>
>                 Key: PIG-2380
>                 URL: https://issues.apache.org/jira/browse/PIG-2380
>             Project: Pig
>          Issue Type: Improvement
>            Reporter: Jonathan Coveney
>            Assignee: Jonathan Coveney
>            Priority: Minor
>             Fix For: 0.11
>
>         Attachments: PIG2380.patch
>
>
> Currently, there is no clean way to get version information (short of trying to instantiate a class that only exists in the version you want and catching an exception, or something like that). This patch exposes major, minor, patch, svn revision, and build time (basically, all of the pieces of the current version).
> Example:
> {code}
> import org.apache.pig.Main;
> public class Thing {
>   public static void main(String[] args) {
>     System.out.println(Main.getMajorVersion());
>     System.out.println(Main.getMinorVersion());
>     System.out.println(Main.getPatchVersion());
>     System.out.println(Main.getSvnRevision());
>     System.out.println(Main.getBuildTime());
>   }
> }
> {code}
> will return
> {code}
> 0
> 11
> 0
> 1202387
> Nov 15 2011, 15:37:14
> 0
> {code}
> which comprises
> {code}
> Apache Pig version 0.11.0-SNAPSHOT (r1202387) 
> compiled Nov 15 2011, 15:37:14
> {code}
> I've run ant test-commit, but not ant test. This can easily be ported to old version, but I only tested it against trunk.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (PIG-2380) Expose version information more cleanly

Posted by "Jonathan Coveney (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PIG-2380?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Coveney updated PIG-2380:
----------------------------------

    Attachment: PIG2380_1.patch

I changed the logic so it will just warn the user if the manifest isn't available. This has the beneficial side effect (which you predicted, Gianmarco) of letting people run -h without the Pig jar present. I rediffed against an updated branch and successfully applied to a clean branch, but let me know if you hit an issue.

I ran ant test-commit just to be thorough: no issues :)
                
> Expose version information more cleanly
> ---------------------------------------
>
>                 Key: PIG-2380
>                 URL: https://issues.apache.org/jira/browse/PIG-2380
>             Project: Pig
>          Issue Type: Improvement
>            Reporter: Jonathan Coveney
>            Assignee: Jonathan Coveney
>            Priority: Minor
>             Fix For: 0.11
>
>         Attachments: PIG2380.patch, PIG2380_1.patch
>
>
> Currently, there is no clean way to get version information (short of trying to instantiate a class that only exists in the version you want and catching an exception, or something like that). This patch exposes major, minor, patch, svn revision, and build time (basically, all of the pieces of the current version).
> Example:
> {code}
> import org.apache.pig.Main;
> public class Thing {
>   public static void main(String[] args) {
>     System.out.println(Main.getMajorVersion());
>     System.out.println(Main.getMinorVersion());
>     System.out.println(Main.getPatchVersion());
>     System.out.println(Main.getSvnRevision());
>     System.out.println(Main.getBuildTime());
>   }
> }
> {code}
> will return
> {code}
> 0
> 11
> 0
> 1202387
> Nov 15 2011, 15:37:14
> 0
> {code}
> which comprises
> {code}
> Apache Pig version 0.11.0-SNAPSHOT (r1202387) 
> compiled Nov 15 2011, 15:37:14
> {code}
> I've run ant test-commit, but not ant test. This can easily be ported to old version, but I only tested it against trunk.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (PIG-2380) Expose version information more cleanly

Posted by "Gianmarco De Francisci Morales (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PIG-2380?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gianmarco De Francisci Morales resolved PIG-2380.
-------------------------------------------------

    Resolution: Fixed

+1
Committed to trunk.
Thanks Jonathan!
                
> Expose version information more cleanly
> ---------------------------------------
>
>                 Key: PIG-2380
>                 URL: https://issues.apache.org/jira/browse/PIG-2380
>             Project: Pig
>          Issue Type: Improvement
>            Reporter: Jonathan Coveney
>            Assignee: Jonathan Coveney
>            Priority: Minor
>             Fix For: 0.11
>
>         Attachments: PIG2380.patch, PIG2380_1.patch
>
>
> Currently, there is no clean way to get version information (short of trying to instantiate a class that only exists in the version you want and catching an exception, or something like that). This patch exposes major, minor, patch, svn revision, and build time (basically, all of the pieces of the current version).
> Example:
> {code}
> import org.apache.pig.Main;
> public class Thing {
>   public static void main(String[] args) {
>     System.out.println(Main.getMajorVersion());
>     System.out.println(Main.getMinorVersion());
>     System.out.println(Main.getPatchVersion());
>     System.out.println(Main.getSvnRevision());
>     System.out.println(Main.getBuildTime());
>   }
> }
> {code}
> will return
> {code}
> 0
> 11
> 0
> 1202387
> Nov 15 2011, 15:37:14
> 0
> {code}
> which comprises
> {code}
> Apache Pig version 0.11.0-SNAPSHOT (r1202387) 
> compiled Nov 15 2011, 15:37:14
> {code}
> I've run ant test-commit, but not ant test. This can easily be ported to old version, but I only tested it against trunk.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (PIG-2380) Expose version information more cleanly

Posted by "Gianmarco De Francisci Morales (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/PIG-2380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13152110#comment-13152110 ] 

Gianmarco De Francisci Morales commented on PIG-2380:
-----------------------------------------------------

Jonathan,
the patch does not apply cleanly to trunk for me. Could you rebase it?

Also, for the static initializer, running the Main class without packaging it into a jar (that means, using the build folder for the classpath) throws an exception (also in current trunk).

{code}
java -cp build/classes:build/ivy/lib/Pig/* org.apache.pig.Main -h
11/11/17 16:45:39 ERROR pig.Main: ERROR 2999: Unexpected internal error. unable to read pigs manifest file
11/11/17 16:45:39 WARN pig.Main: There is no log file to write to.
11/11/17 16:45:39 ERROR pig.Main: java.lang.RuntimeException: unable to read pigs manifest file
	at org.apache.pig.Main.getVersionString(Main.java:749)
	at org.apache.pig.Main.run(Main.java:249)
	at org.apache.pig.Main.main(Main.java:111)
Caused by: java.lang.NullPointerException
	at java.io.File.<init>(File.java:222)
	at java.util.jar.JarFile.<init>(JarFile.java:72)
	at org.apache.pig.Main.getVersionString(Main.java:737)
	... 2 more
{code}

I would propose to fix it, we don't need to throw a RuntimeException for it.
Let's just warn the user and go on.
                
> Expose version information more cleanly
> ---------------------------------------
>
>                 Key: PIG-2380
>                 URL: https://issues.apache.org/jira/browse/PIG-2380
>             Project: Pig
>          Issue Type: Improvement
>            Reporter: Jonathan Coveney
>            Assignee: Jonathan Coveney
>            Priority: Minor
>             Fix For: 0.11
>
>         Attachments: PIG2380.patch
>
>
> Currently, there is no clean way to get version information (short of trying to instantiate a class that only exists in the version you want and catching an exception, or something like that). This patch exposes major, minor, patch, svn revision, and build time (basically, all of the pieces of the current version).
> Example:
> {code}
> import org.apache.pig.Main;
> public class Thing {
>   public static void main(String[] args) {
>     System.out.println(Main.getMajorVersion());
>     System.out.println(Main.getMinorVersion());
>     System.out.println(Main.getPatchVersion());
>     System.out.println(Main.getSvnRevision());
>     System.out.println(Main.getBuildTime());
>   }
> }
> {code}
> will return
> {code}
> 0
> 11
> 0
> 1202387
> Nov 15 2011, 15:37:14
> 0
> {code}
> which comprises
> {code}
> Apache Pig version 0.11.0-SNAPSHOT (r1202387) 
> compiled Nov 15 2011, 15:37:14
> {code}
> I've run ant test-commit, but not ant test. This can easily be ported to old version, but I only tested it against trunk.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira