project update

271 views
Skip to first unread message

joe

unread,
Oct 23, 2015, 3:38:38 PM10/23/15
to diffkit-user
Hello,

Seems like there are a lot of questions recently about the project status, so I thought I would shed some light.

  • I have not contributed to the DiffKit project since I joined Apple in early 2011.
  • In order for Apple SW engineers to contribute to open source projects they have to jump through some bureaucratic hoops of fire, and I haven't had the energy to clear those hurdles.
  • Even if I got approval from Apple, I still would not have enough time to make any meaningful contributions. Between my day job and family commitments, there's no time for open source.
  • DiffKit was never commercialized by me. I never even entertained the idea of commercializing it.
  • Several people in the community have sent me patches over the years. I have shamelessly not applied these patches, for the reasons listed above. I sincerely apologize to the authors for this.
  • If there are any qualified software engineer out there who would like to take over the project, even just temporarily, please drop me a line. I think there is some very low hanging fruit that could be picked pretty quickly by a skilled java engineer: applying the already submitted patches, qualifying DiffKit for Java 8, etc. If someone else takes the reins I would not act as an executive manager, trying to maintain control. Instead, I would act more as a very distant consultant, just pointing out potential pitfalls and any substantial "drift" from the core mission of DiffKit. After all, anyone is free to fork DiffKit if they want, so any notions of control are really just an illusion.

best,

Joe

Kelly Beard

unread,
Nov 5, 2015, 10:51:53 AM11/5/15
to diffkit-user
Is there any reason you haven't just thrown this out on a Git repository and let a group 'have at it'?  I've never worked on an open source project before but I've tried to get diffkit going with some changes for IBM DB2 running on an iSeries.  At least I'd like to see a list of the patches, etc that people have sent to you over the years and see if it's something I could spend some time on and get folded into the code so that this project doesn't die from neglect.  Drop me a line at least.

Is anyone else interested in helping to maintain this project?

Joe Panico

unread,
Nov 6, 2015, 9:43:26 AM11/6/15
to diffkit-user
Hi Kelly,

Paulo Aurelio, who I think is on this list, has expressed an interest in maintaining DiffKit. The first order of business is finding a new home for DiffKit, because Google code is now defunct and has put all projects into read-only mode. We're probably all agreed that DiffKit should move to Git. It turns out that someone has already cloned DiffKit into GitHub, and has also Mavenized the project for good measure:


I haven't been in touch with agdula, but Paulo told me he would contact him.

I will collect the patches I have been sent in the past, and post them here.

Everybody should get an opportunity to "have at it", but I suggest you anoint 1 person who will review all patches for quality control. Otherwise, you risk things getting quite messy.

cheers,

Joe

--
You received this message because you are subscribed to the Google Groups "diffkit-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diffkit-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Paulo Aurelio

unread,
Nov 6, 2015, 11:27:26 AM11/6/15
to diffki...@googlegroups.com

Hi all, 

Unfortunatly I haven´t found the Agdula email for starting a conversation, but 
even though I couldn´t  talk with him yet, 
I have left  a message on the github of him. (I hope he can answer to me!!)

However, 
I have tried to build the mavenized Diff-kit source, 
 cloned from Agdula githug repo,
 but for me the build is not working....

I have not realised yet what is going on with "pom.xml" file (may be it is missing some repository configuration...), but if Kelly wants to try... ok go ahead!!!

 I think that first step is trying to put Adgula in the loop of this user group .. (I don´t know if him is already in the list..)

I believe that we can restart the working on Diff-kit project and make  improvement to it!! - It is a great project!!!

Cheers
Paulo Aurelio.
  

Andrzej Gdula

unread,
Nov 9, 2015, 3:24:19 AM11/9/15
to diffkit-user
Hey Guys!

It's me AGdula (Andrzej Gdula ). I can participate in resurrection off the diff-kit project. There are few things that i think need to be done
1. There's a need to cleanup some mess with version number that I've intorduced.I propose to create a separate github account for the diffkit project and start cleen from there. 
2. Configure the CI for the project
3. Configure the project to be deployed in maven central
4. Apply and review the patches from Joe

I could take care of 1, 2, 3 but It will take some time so if any of you happen to have a few spare hours and agree on that please Do it :). If you don't have time I'll try to do this on my own in my spare time. 

Andre

Paulo Aurelio

unread,
Nov 9, 2015, 6:51:34 AM11/9/15
to diffki...@googlegroups.com
Hey AGdula!
It sounds great! I agree with your checklist!

Maybe, if you want, I can help you with item 3.
I can get prioritize some hours each week to dedicate to this task.

Joe, could you help us with the Agdula checklist item 4  ? 

If you can't, please, Let us know!


I believe if others like us could alocate some hours, we can do this project active again!

It´s cool!!!
Let's do it!
Paulo Aurelio.

Andrzej Gdula

unread,
Nov 9, 2015, 4:11:55 PM11/9/15
to diffkit-user

Hey

✓ 1.  https://github.com/DiffKit , version is set to 0.9.1-SNAPSHOT

Kelly Beard

unread,
Nov 10, 2015, 11:08:24 AM11/10/15
to diffki...@googlegroups.com
Well, I don't know Maven but I've installed it to my system.  I have a sign-on to GitHub but I don't know how to join the DiffKit project (yet).  In any case I'm ready to help out in whatever way I can.  Like I said I have some changes for the IBMi DB2 to add but they're probably incomplete.  I still don't have DiffKit working and lately haven't had any time to spend on it.  I'm more inclined to make time now that there is a small army of us wanting to work on it.

You received this message because you are subscribed to a topic in the Google Groups "diffkit-user" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/diffkit-user/EqZi_pXBBOQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to diffkit-user...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Kelly Beard

Andrzej Gdula

unread,
Nov 10, 2015, 12:28:05 PM11/10/15
to diffki...@googlegroups.com
Kelly

If you want to become a member of the new "DiffKit Army" :) please give me your account name I'll add you to the DiffKit github project. 
After you gain access to it you could create a feature branch called eg. IBMiDB2 and work on these changes there.That we'll keep track of these changes an be able to merge them possibly to 0.10.0 release.

I guess the next thing that we want to actually do is 

1. creating a list of things of what we want to have there https://github.com/DiffKit/DiffKit/issues

2. create a milestone out of these https://github.com/DiffKit/DiffKit/milestones

3. create a new version out of features in that milestone

But first we need to setup Continuous integration system and the maven repository for version 0.9.1 which is current one

Andre

Pozdrawiam,
Andrzej

Paulo Aurelio

unread,
Nov 10, 2015, 1:46:25 PM11/10/15
to diffki...@googlegroups.com
Hi Agdula, 

The dependency problem is that:

In the  Central Maven Repository (https://repo1.maven.org/maven2)  is missim this artefact:  "cn.guoyukun.jdbc:db2jcc:jar:1.4.2" , related to these "pom" dependencies configurations:

        <dependency>
            <groupId>cn.guoyukun.jdbc</groupId>
            <artifactId>db2jcc</artifactId>
            <version>1.4.2</version>
        </dependency>

        <dependency>
            <groupId>cn.guoyukun.jdbc</groupId>
            <artifactId>db2jcc_license_cu</artifactId>
            <version>1.4.2</version>
        </dependency>


What central maven are you using in your settings.xml (other than "https://repo1.maven.org/maven2") ?


Cheers
Paulo

PS: I Like this Name "Diff-Kit Army" ...  very cool!!!  ;-)
  

My Maven Said:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.023s
[INFO] Finished at: Tue Nov 10 16:27:53 BRST 2015
[INFO] Final Memory: 7M/17M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project diffkit: Could not resolve dependencies for project org.diffkit:diffkit:jar:0.9.1-SNAPSHOT: The following artifacts could not be resolved: cn.guoyukun.jdbc:db2jcc:jar:1.4.2, cn.guoyukun.jdbc:db2jcc_license_cu:jar:1.4.2: Could not find artifact cn.guoyukun.jdbc:db2jcc:jar:1.4.2 in central (https://repo1.maven.org/maven2) -> [Help 1]

Andrzej Gdula

unread,
Nov 10, 2015, 1:51:53 PM11/10/15
to diffki...@googlegroups.com
I have no special configuration in my settings.xml. I'm getting same error on travis ci so you're not alone. I'm trying to fix this right now. The last resort will be to add thest two files to the /repo directory :)

[ERROR] Failed to execute goal on project diffkit: Could not resolve dependencies for project org.diffkit:diffkit:jar:0.9.1-SNAPSHOT: The following artifacts could not be resolved: cn.guoyukun.jdbc:db2jcc:jar:1.4.2, cn.guoyukun.jdbc:db2jcc_license_cu:jar:1.4.2: Failure to find cn.guoyukun.jdbc:db2jcc:jar:1.4.2 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

Paulo Aurelio

unread,
Nov 10, 2015, 2:06:46 PM11/10/15
to diffki...@googlegroups.com
I fixed!

Try this:

        <repository>
          <id>Nuxeo.Nexus</id>
          <releases>
            <enabled>true</enabled>
          </releases>
        </repository> 

in your settings.xml

Cheers,
Paulo

Andrzej Gdula

unread,
Nov 10, 2015, 2:10:54 PM11/10/15
to diffki...@googlegroups.com
Yep this is a partial solution. I think we should either add it to the pom.xml or remove dependency so that other contributors won't have to go through this.

Paulo Aurelio

unread,
Nov 10, 2015, 2:45:21 PM11/10/15
to diffki...@googlegroups.com
OK Then...

Let´s try this:

in project pom.xml
-------------------------

       <repository>
          <id>nexus</id>
  <name>Sonatype Public Repo</name>
          <url>https://maven-us.nuxeo.org/nexus/content/groups/public</url>
       </repository>


and remove setting.xml from ~/.m2  (from now we doesn´t not need it !)

What do you think?

Cheers
Paulo.


Paulo Aurelio

unread,
Nov 10, 2015, 2:53:09 PM11/10/15
to diffki...@googlegroups.com
Hi Agdula, 
I ´ve just pushed this pom.xml change (adding sonatype repo) ...

 I´ve tested in my local machine first before pushed, and it was ok!

Cheers,
Paulo

Andrzej Gdula

unread,
Nov 10, 2015, 2:55:08 PM11/10/15
to diffki...@googlegroups.com
That's a solution. But can we relay on nuexo:)? I guess we could...
Anyway I've created a temp feature branch fix-dependencies. Compilation succeeds but 1 tests fails. If you have time to check why please do and feel free to push the fix to the master branch :).
I have to go 

Cheers

Paulo Aurelio

unread,
Nov 10, 2015, 3:12:24 PM11/10/15
to diffki...@googlegroups.com
Ok,  
i'll check what's going on...

Cheers

Kelly Beard

unread,
Nov 10, 2015, 3:38:57 PM11/10/15
to diffki...@googlegroups.com
I done a "git clone" of the repository.  Is there anything I need to do in Maven to complete the setup?

Paulo Aurelio

unread,
Nov 10, 2015, 4:03:38 PM11/10/15
to diffki...@googlegroups.com
No Kelly, It ´s ready.

Please, try this: 

mvn clean install -DskipTests=true -Dmaven.javadoc.skip=true

to verify if it realy works for you!

Cheers
Paulo

Kelly Beard

unread,
Nov 10, 2015, 4:28:47 PM11/10/15
to diffki...@googlegroups.com
OK, it is chewing on it now.  :-)  It's download a lot of stuff!  There are some timeouts on some things so I will re-run the command after it completes.

Like I have said previously, I know nothing about Maven except what I've begun to read on Wikipedia.  I'll try and watch some youTube videos tonight.

Just random observations:
It looks like from the pom.xml file that JDK 1.6 is going to be used?

Paulo Aurelio

unread,
Nov 10, 2015, 4:44:41 PM11/10/15
to diffki...@googlegroups.com
Welcome and Don't worry about maven. 

It's very cool and straightforward... You'll like it!!!


The pom.xml file is the main project file for the building process of the source code project. 

POM for Project Object Model



Cheers

 

Kelly Beard

unread,
Nov 11, 2015, 1:42:04 PM11/11/15
to diffki...@googlegroups.com
I'm not exactly sure yet what I'm supposed to do with the type mappings in DKDBType.java yet.  For now I'm just copying the DB2 "Flavor" (which I interpret to be DB2 UDB), but I'm sure that's wrong.

On page 72 of "DB2 for i SQL Reference" (actual page 92), found at http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/db2/rbafz.pdf, the following data types are defined:

External Data:
    DATALINK

Date/Time:
    TIME
    TIMESTAMP
    DATE

String:
    CHAR
    VARCHAR
    CLOB
    GRAPHIC
    VARGRAPHIC
    DBCLOB
    BINARY
    VARBINARY
    BLOB

XML:
    XML

Row Identifiers:
    ROWID

Signed Numerics:
    SMALLINT
    INTEGER
    BIGINT
    DECIMAL
    NUMERIC
    DECFLOAT
    REAL
    DOUBLE

But on page 978 for the CREATE TABLE statement, many more are listed in their diagram.

In any case, the only files I've modified are DKDBFlavor.java, DKDBConnectionInfo.java, and DKDBType.java.  I've committed nothing yet.


Kelly Beard

unread,
Nov 11, 2015, 4:07:23 PM11/11/15
to diffki...@googlegroups.com
I'm supposing that diffkit-0.9.1-SNAPSHOT.jar contains everything needed to run the application, except the manifest file specifies no Main-Class.  What needs to be changed in the project to make this happen, or is there a reason why it doesn't do this?
--
Kelly Beard

Kelly Beard

unread,
Nov 12, 2015, 11:29:43 AM11/12/15
to diffki...@googlegroups.com
Not sure what I'm doing wrong here, but I'm trying to get this thing to run.  Seems to be complaining about something called helpOptions() in Parser.java, line 149.  In the CLI source for 1.3.1 I see member method  "List<Option> helpOptions()" in commons-cli-1.3.1-src/src/main/java/org/apache/commons/cli/Options.java, line 192, but it does not have public scope.  CLI 1.2 seems to have a similar problem.  I know I'm looking at something wrong here.

ERROR[09:43:24.546]{main}(DKApplication.main:135)-null
java.lang.IllegalAccessError: tried to access method org.apache.commons.cli.Options.helpOptions()Ljava/util/List; from class org.apache.commons.cli.Parser
        at org.apache.commons.cli.Parser.parse(Parser.java:149) [commons-cli-1.3.1.jar:1.3.1]
        at org.apache.commons.cli.Parser.parse(Parser.java:88) [commons-cli-1.3.1.jar:1.3.1]
        at org.diffkit.diff.conf.DKApplication.main(DKApplication.java:107) [diffkit-0.9.1-SNAPSHOT.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.6.0_36]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [na:1.6.0_36]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.6.0_36]
        at java.lang.reflect.Method.invoke(Method.java:622) [na:1.6.0_36]
        at com.jdotsoft.jarloader.JarClassLoader.invokeMain(JarClassLoader.java:571) [diffkit-0.9.1-SNAPSHOT.jar:na]
        at org.diffkit.diff.conf.DKLauncher.main(DKLauncher.java:29) [diffkit-0.9.1-SNAPSHOT.jar:na]


--
Kelly Beard

Kelly Beard

unread,
Nov 12, 2015, 11:38:02 AM11/12/15
to diffki...@googlegroups.com
Although it should have package visibility, if I'm reading this code correctly.
--
Kelly Beard
Message has been deleted

Andrzej Gdula

unread,
Feb 12, 2016, 2:11:40 AM2/12/16
to diffki...@googlegroups.com
If you don't need to do anything with Oracle comment out the dependency.

2016-02-11 23:02 GMT+01:00 Anil Kulkarni <ani...@gmail.com>:
Hi Paulo,

I tried doing a mvn clean install using the command you suggested above. But it failed.  here is what i got. 

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Diff tool 0.9.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.oracle:ojdbc14:jar:10.1.0.5.0 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31.652 s
[INFO] Finished at: 2016-02-11T13:58:19-08:00
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project diffkit: Could not resolve dependencies for project org.diffkit:diffkit:jar:0.9.1-SNAPSHOT: Could not find artifact com.oracle:ojdbc14:jar:10.1.0.5.0 in nexus (http://mvnrepo.nordstrom.net/nexus/content/groups/public) -> [Help 1]



--
Pozdrawiam,
Andrzej

Paulo Aurelio

unread,
Feb 12, 2016, 7:09:27 AM2/12/16
to diffki...@googlegroups.com
It's rigth. 
You will need this oracle jdbc jar only if you want to connect diffkit to an Oracle Database, otherwise comment it out from our pom.

Cheers.
Paulo

Anil Kulkarni

unread,
Feb 22, 2016, 2:10:26 PM2/22/16
to diffkit-user
Hi Folks,

Command line execution - is it the only way to execute using Diffkit?

java -jar ../diffkit-app.jar -planfiles test10.plan.xml,dbConnectionInfo.xml

How can replicate the same in the above line by directly calling a method in Diffkit?
Reply all
Reply to author
Forward
0 new messages