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

Support for hybrid torrent files (bep 0052) #3386

Closed
Lanzaa opened this issue Jul 1, 2022 · 4 comments · Fixed by #3388
Closed

Support for hybrid torrent files (bep 0052) #3386

Lanzaa opened this issue Jul 1, 2022 · 4 comments · Fixed by #3388

Comments

@Lanzaa
Copy link
Contributor

Lanzaa commented Jul 1, 2022

In version 3.00 (bb6b5a0) opening a hybrid v1+v2 torrent file in transmission-qt results in the error: "invalid or corrupt torrent file".

Hybrid torrent files are intended to be backward compatible.

Blocks: #458

@Lanzaa
Copy link
Contributor Author

Lanzaa commented Jul 1, 2022

I think this is worthwhile to get into the next release (4.0?). The current main branch also fails to handle hybrid files.

@Lanzaa
Copy link
Contributor Author

Lanzaa commented Jul 1, 2022

@ckerr I should have a PR for this soon. As a side conversation, how do I follow the 4.0 release process?

@ckerr
Copy link
Member

ckerr commented Jul 1, 2022

In version 3.00 (bb6b5a0) opening a hybrid v1+v2 torrent file in transmission-qt results in the error: "invalid or corrupt torrent file".

This may be failing in 3.00 but AFAIK hybrid torrents are working correctly in main -- this is what the transmission-show-bittorrent-v2-hybrid-test test is for? So as far as 3.00 goes I think this issue is a duplicate of #1964?

If there are still hybrid torrents that fail in main then absolutely that should be in 4.0.0

As far as padding & extended file attributes go, that would be fantastic.

I should have a PR for this soon. As a side conversation, how do I follow the 4.0 release process?

  • 4.0.0-beta.1 will be the first release we've had in years -- the project was (mostly) dormant for a few years until development spun up again in late 2021. Which is to say, there's not a strict process right now.

  • The ordinary process of making a PR, addressing review feedback, etc. just as you did in 3380 will apply. There's not a hard deadline for 4.0.0-beta.1 but at a minimum you've got a couple of weeks to get code in.

  • Filing issues like this one for "this is what I'm thinking of working on next; WDYT?" is great.

  • One thing I'd really like for new code like this is to add test. The testing situation has been slowly getting better over the last 8 months or so, and the "parsing hybrid torrents" topic is in a sweet spot because the existing test structure for transmission-show will work as a smoke test for adding support for padding & attribs. If you you want more fine-grained testing -- eg if you're adding attributes to tr_torrent_metainfo and want to test that class' contents when fed different torrent files -- it would probably make sense to add tests new into tests/libtransmission/ .

@Lanzaa
Copy link
Contributor Author

Lanzaa commented Jul 1, 2022

Hybrid torrents were failing to download or verify because the padding files were missing. The padding files are not contained in the 'file tree' metadata, but are in 'files'.

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

Successfully merging a pull request may close this issue.

2 participants