Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ttorrent library maintenance and evolution #212

Closed
pavelsher opened this issue Dec 24, 2017 · 20 comments
Closed

ttorrent library maintenance and evolution #212

pavelsher opened this issue Dec 24, 2017 · 20 comments

Comments

@pavelsher
Copy link
Contributor

Hello,

We, at JetBrains have a separate fork of this library: https://github.com/JetBrains/ttorrent-lib
The fork is being used in one of our experimental open source plugins for TeamCity: https://github.com/JetBrains/teamcity-torrent-plugin

BTW, there aren't so many Java based implementations of BitTorrent protocol out there. So thank you very much for making this library publicly available!

While working on our fork we made several significant changes and fixes. For instance, recently we fixed download performance, switched the library to Java NIO, improved memory usage, added more tests, etc.

Now the question is: is there still a commitment or interest from you, as original authors of the library in evolving it? If there is such a commitment, then we could join our efforts and merge work done by us to this source tree. Since this merge will require significant efforts from us, we'd really want to do that if there is a mutual interest from maintainers of this source tree.

Please let us know what do you think.

@mpetazzoni
Copy link
Owner

I unfortunately don't have time to work on ttorrent anymore, but I would love to see the project being maintained and continue evolving!

Would it make sense for me to just make a few folks from JetBrains (you included, I'm guessing) co-maintainers, with read/write access to this repository? This way we can keep this repository as the "official" repository that will see further improvements!

Let me know what you think.

@pavelsher
Copy link
Contributor Author

Thank you for reply!

Could you please add the following GitHub users as maintainers then: linfar and Dead-off.
They both are JetBrains employees and are main contributors to our fork at the moment.

@mpetazzoni
Copy link
Owner

One of the main goals with ttorrent was to build a library with well-documented and easy-to-ready source code, with impeccable code style and consistency to make it as easy as possible for people to go through the code and understand how BitTorrent works.

A lot of the code I see in your fork doesn't match this (high) standard, and neither does the commit history.

So before I add @Linfar and @Dead-off as co-maintainers, could you elaborate a bit more on your plans for a clean integration of your changes to this upstream repository?

@pavelsher
Copy link
Contributor Author

Initially we thought about sending a bunch of pull requests to this repository. But this is where we wanted to be sure that current maintainers will spend time on reviewing these pull requests, providing feedback, etc. As you said you do not have time for this kind of review, but at the same time you have concerns about the quality of the code.

So now we are not sure how to proceed. If there are concerns, then review is a required step. If there is no time for review, then I suppose we can't merge our code in this repository.

BTW, do you have some description of code standards somewhere, or maybe you can point out which commits that you've seen are not acceptable for this repository, so that we better understand these concerns?

@paulvi
Copy link

paulvi commented Mar 16, 2018

The current version is released and available as maven central as 1.5 and has been stable in such way for 1-2 year.

I guess what Maxime @mpetazzoni and all users would like to see is Roadmap for future and Plans for 1.6 (or maybe better 2.0 version).

Author is ready to give control (push rights) to @Linfar, @Dead-off and @pavelsher, but you need to say what the immediate actions would be.

For example, it could be:

  • branch current master into v1.5 branch
  • merge into master from https://github.com/JetBrains/ttorrent-lib master
  • continue development within this repository, update README, links
  • possibly transfer the repository under @JetBrains organization ( needs OK from auther, users will be redirected automatically by GitHub )
    or maybe new organization to reflect that it more now than work of one person.

The author has moved to other projects and ready to give over to new person.
So would guys from @JetBrains lead new development with public releases, open issue tracker.

@paulvi
Copy link

paulvi commented Mar 16, 2018

Referencing those who has sent pull requests during last 2 year:
@Hronom @Xianguang-Zhou @zanella @bwzhou @pisek @bracouda
These people are likely interested in future of this project and possibly have their own forks used.

@Hronom
Copy link

Hronom commented Mar 16, 2018

+1

1 similar comment
@pisek
Copy link

pisek commented Mar 16, 2018

+1

@paulvi
Copy link

paulvi commented Mar 21, 2018

As @JetBrains has not yet expressed their steps, and author @mpetazzoni does not have time for this project, actually anybody willing could take over the project and continue talk about relation with @JetBrains fork.

It may be as simple as referencing it from README

@mpetazzoni
Copy link
Owner

It's pretty clear that I no longer have time to work on ttorrent other than the very occasional PR review. I'm happy to transfer ownership to @JetBrains given proper attribution, and that the license remains the same.

@pavelsher
Copy link
Contributor Author

Hello!

So here is what we propose:

  1. We can create a branch from the current tip revision for the not yet released 1.6 version
  2. Then we can import all of our changes into the master branch
  3. Then we can go through all pull requests and merge them into the master

This new version of master eventually can become version 2.0. If we want to release 1.6 we’ll be able to do that too.

Below is the list of improvements that we’ve made while we worked with our fork (our main concern was fixing bugs and improving performance of the library):

  • added tests
  • split the project into a set of separate Maven modules for better isolation
  • rewrote networking to use the approach with select
  • added support for multiple torrents within one client instance
  • optimized memory usage for seeding multiple torrents (now information from a torrent file is loaded on demand)
  • reduced the number of threads used by the library
  • made a lot of small bug fixes along the way

We actually thought about possibility to merge our changes through a series of relatively small pull requests. But this is not going to work. We contribute to our fork for a few years already and the amount of commits there is too big.

If project owner and contributors agree with this plan, then we need permissions for our two main contributors (@Linfar and @Dead-off ) to move forward.

@Hronom
Copy link

Hronom commented May 28, 2018

Guys, have you complete transfer?
It seems like fork of JetBrains guys is actively maintained, but their changes still not here.

@mpetazzoni do you grant permissions for @Linfar and @Dead-off here?

Also interested of approving this fork #207 it adds support for usage of this library in docker environment.

@Dead-off
Copy link
Collaborator

currently we don't have write permission for this repository.

@Hronom
Copy link

Hronom commented May 28, 2018

@Dead-off thanks for the fast reply.
@mpetazzoni it looks you need to do final step in order to move this project on the next level=)
I'm will appreciate if you do so.

@mpetazzoni
Copy link
Owner

It's done! Let's get some life into this repo :) Thanks @Linfar and @Dead-off for your work on ttorrent and taking the reigns from now on.

@Hronom
Copy link

Hronom commented Jun 1, 2018

@mpetazzoni Wonderful news, big thanks! Hope this project will have long and nice life.
@Linfar and @Dead-off now you can unleash the kraken!!!=)

@Dead-off
Copy link
Collaborator

Dead-off commented Jun 6, 2018

fine!:)
I think we will merge our repo in 2 weeks

@Dead-off
Copy link
Collaborator

Dead-off commented Jul 31, 2018

Sorry for delay. We pushed our version in master branch right now. Old version is available in "v1.6" branch.
it would be great if you try to use new library and will give us some feedback. So we can fix bugs and release new version in maven repository

@tomachinz
Copy link

I just read this whole thread. It is a beautiful example of this brave new world we live in, a good world it is. In the meaning of the phrase rather than like the book. Thank you.

@UdayHE
Copy link

UdayHE commented Apr 23, 2023

Is this repository still in use? because I can see the commits are older

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants