Proposal to evolve to HTSJDK version 3 (DO NOT MERGE) #928
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Because the governance model is gonna change soon (#871), I would like to revive the discussion about several issues about the API and proposing to evolve to HTSJDK in a join effort by the community. The related issues are the following:
Proposal
The main idea is to create a folder structure as the one in
htsjdk3-dev
in the root folder of the project and move the current version of htsjdk to a sub-module called htsjdk-2 (not done in the PR for reduce the number of changes). Tasks in gradle to build the current version should be modified to keep the same behavior, and a new task to build the developmental version 3 should be included too.In addition, I drafted a new annotation for mark the status of the classes with respect to version 3 (
@Htsjdk3
). As an example, I ported theLocatable
andFeature
interfaces to the new package. This will allow to see the progress of the new version and keep in sync fixes between versions.I know that this is a huge proposal, but I expect that most of the code will require just copy-paste and/or repackage (and maybe adding a
@Beta
annotation for some code that may be changed in the future). I think that the community will benefit from this change to create a more consistent API for NGS data processing. In addition, some dev issues could be solved on the port to HTSJDK-3.Bringing the attention to the maintainers of the project: @tfenne, @lbergelson, @jacarey
Checklist