tcalmant/jpype-py3

Differences in forks

Closed this issue · 6 comments

Is there anything in this fork that needs to be salvaged to the current master project jpype-project/jpype? The two forks have diverged. It would be great if there were any capabilities that are in this fork that could get pushed back into the development head on the project master.

Hi,
I've lost track of the jpype root project for some time (I think it wasn't yet in an organization of its own) and as you can see this fork is quite stalled.

That being said, at some point, this project was better at compiling on most systems (Windows, Windows+Cygwin, Linux and Mac) without explicit configuration. IIRC I've contributed it to the root project, but as I can see it has changed a lot since.

Apart from that, according to the commits in the root, I think most of the features have been pushed back. Most of the divergence comes from the way I handled the Python3 port vs. the root project (which was Python 2 only at that time).

The root currently works with windows, cygwin, and Unix variants. Windows is still the worst because the tool requirements.

I will look over the python 3 differences to see if they are significant. I rewrote the core to improve a number of operations and pushing to get to version 0.7. The python 2/3 are completely supported with identical interfaces in the root currently. But as this was the most significant fork, I need to assess if there is material that should be folded in.

@tcalmant I did a complete review of this fork with reference to the current jpype-project master. There are only two API differences of note.

  • JProxy uses dict rather than dictionary
  • We are missing the functions get_boot_arguments and normalized_arguments.

I am not sure what those functions are for, but we can port them if you feel they are important.
I ran the tcalmant/jpype-p3 test bench in the jpype-project master and it ran with only the one issue. The reverse did not go so well.

$ python3 -m pytest test
=============================================
platform cygwin -- Python 3.6.4, pytest-4.5.0, py-1.8.0, pluggy-0.11.0
rootdir: /home/nelson85/devel/open/jpype
collecting 0 items
Segmentation fault (core dumped)
$

There where dozens and dozens of segfaults that we have cleaned up 736 pulls. It may be a good idea to deprecate this fork.

Hi @Thrameos, and kudos for the great work.

(note: it's been 2 years I haven't worked on this project)

If I remember correctly, the get_boot_arguments and normalized_arguments were written to allow the use of a Windows-stype JDK (DLLs, ...) from the Cygwin environment.
I can't remember if this was the answer to a public issue or if it was for a specific need in a project I was working on at that time.

What I would suggest for the next steps:

  • This repository should be archived, after adding a note in the README to use the new official project
  • The new root project should provide wheel files for Windows (and most versions of Python), as this is the main reason this repo still has a lot of downloads despite it's stalled.
  • Maybe we could release a new version of this repository, with a trace at loading indicating its deprecation.

Sounds like a plan.

Closing this issue as the deprecation steps have all been completed (except the archive, I'll wait for a week before doing that).