Is BioJulia team maintaining the IntervalTree package regularly?


#1

Hi BioJulia Team,

Just wanted to check if this team is actively maintaining the IntervalTree package. I have raised a few issues and submitted a PR today. Will request quick turnaround or a time line when you can do so. I have found the package very useful and have used it extensively in my code. Although my usage is not in the line of interest of BioJulia. So I am concerned if I am investing in a non-maintained package. There seems to be no update on the package nor comments on the issues after 13 Nov. 2017.

Please advise.

regards,

Sambit


Time for re-writing?
#2

As far as I can see, IntervalTree is still building and passing its unit tests on both v0.6.2 (release) and v0.7.0-DEV (master), so why do you feel it is not being maintained?

Remember also, these open source packages are written as labors of love, and it’s probably not the best approach to go requesting other’s people’s time like that - just kindly ask if your PR can be reviewed, and hopefully somebody will have the time to do so soon.


#3

Why? Especially in light of what @ScottPJones said above.

Presumably you already have the code of your own PR and can use it in the meantime if you need the functionality it implements.


#4

@ScottPJones

The 0.7.0-Dev was not passing, hence I worked on it for past few days to submit the PR which made it work on 0.7.0.

https://travis-ci.org/BioJulia/IntervalTrees.jl/builds/362439280

The previous PR on the release was:

https://travis-ci.org/BioJulia/IntervalTrees.jl/builds/301056049

which was clearly breaking on 0.7.0. One of the drivers for me to take up this task was all my packages were not building for 0.7.0 which made me raise the concern.

We all understand open source is labor of love. I love the package hence I wanted to contribute to it. I see value in that. But if contribution does not make it to the product in time when I need it definitely it would mean I may be investing efforts in a package which may not have a significant future. That may happen anytime.

For example:

request was submitted in 2015 and when no major advancement happened the requestor implemented his own version.

As per the general guidelines also to some extent per BioJulia, 2 months of lack of activity as per the community creates general red flag. My humble submission was if the community has interest in the package or not. I just asked if that’s the case. My intent was not to be offensive to anyone by any means. I will request you to read the mail again. Requesting for a quick turnaround or a potential timeline is not offensive in any manner.

I am seriously surprised with your response.

regards,

Sambit


#5

This is not always true. Many people in the Julia community have many packages to which they contribute and may not contribute to all of them at the same time. Furthermore, Julia is stable enough that once a package is working on a particular Julia release, in many cases there is no immediate need to work on it until it must be updated for the next release. Even this pattern will be at an end soon as there will be no further breaking changes until 0.7. I personally have at least one package that I use every day, but which I’m not hoping to have to make any significant changes to (or perhaps no changes at all) for quite a long time.


#6

OK, the build tag for the package showed it passing on v0.6 and master, but master has been changing daily (I’ve been trying mysefl to keep up with the changes in master in my Strs.jl package, and it’s rather difficult to do so :grinning: ).
I think a lot of package developers may be waiting until the churn in master has stopped, so that they can fix their packages once, instead of fixing them ever day or so.

If you’ve just made a PR, then have a bit of patience, if it is merged in a few weeks, I’d think that’s doing pretty well.


#7

@ExpandingMan, @ScottPJones, @Tamas_Papp

My request was to BioJulia team and when I referred to the people list, unfortunately I do not see any of you in that list. I understand you have a significant interest in the Julia community as much as I have. But your understanding may not be a true reflection of the BioJulia organization.

@ararslan

Please request moderation here.

regards,

Sambit


#8

Hi @sambitdash,

I’m not competent to review changes to IntervalTrees, though it looks like @ScottPJones has provided some review (thanks Scott!). If I’m not mistaken, that package was written by DC Jones, but does not currently have a dedicated maintainer. This means it might take someone a bit longer to come along and merge, but as far as I know, there are no plans to abandon the package. It’s used by some other packages in Bio.jl as well, and there’s been a lot of activity in BioCore and other packages to prepare for 0.7. We definitely appreciate the help!

BioJulia is more of a loose confederation of packages rather than a top-down ecosystem. Given your interest, would you like to volunteer as a maintainer of this package? Please take a look at the contributing docs. We’re always happy to take new people on board.

As to the separate posts about attitude, I agree that your first post came across as a bit entitled, which I see you did not intend. Probably just a phrasing thing. But everyone that’s replied in this thread (myself excluded) are incredibly active in this forum and and knowledgable about Julia in general and have made contributions to Bio.jl, some directly and some indirectly by teaching us all a lot. It’s probably not a great idea to dismiss their concerns.


#9

For self-reflection, let me summarize what you’re doing:

  1. You submitted a PR and get a <11 hour turnaround on a review.
  2. You specifically snubbed someone who reviewed your PR (@ScottPJones) in this thread.
  3. You pinged a community admin to moderate chats of people the person who reviewed your PR and two people who were just telling you to calm down.
  4. You were pushy and asked for a quick turnaround time (which you got from @ScottPJones, but seemed to have rejected?).
  5. You then “played the victim”. Example:

No, requesting other people do free work for you and rejecting their help and responses, but turning around and saying they aren’t doing anything, is extremely toxic or entitled behavior. Maybe it wasn’t your intent to come off as toxic, but I hope that when you see this summarized you at least realize how toxic this is. I do believe this wasn’t your intent given what I know about you, but this is how it comes across.

But just to discuss timelines:

Why? Tests pass. Seems like it works just fine. Maybe can get some bug fixes, but it’s not like it’s broken.

Notice that Julia v0.7.0 doesn’t event exist yet. We’re on Julia v0.6.2, and there’s a nightly release for v0.7.0-pre-alpha(etc.etc.etc.). The nightly builds specifically say:

The nightly builds are for developer previews and not intended for normal use. You can expect many packages not to work with this version. Most users are advised to use the latest official release version of Julia.

Failing tests on Julia v0.7.0 isn’t a cause for concern since that release doesn’t exist yet (and it could very well be the case that your PR introduces something that breaks in the true Julia v0.7.0 of the future!). While it’s nice to do such an upgrade, there’s absolutely no need to rush it: we have months until it’s actually released!


#10

@kevbonham Thanks a lot for your response. I believed exactly so by reading through many of the Issues and PR comments and some of the facts I have stated in one of my earlier replies. As you have admitted my cause of concern was not entirely unfounded. @dcjones is not actively involved and no one has taken it up subsequently.


#11

I would like to correct that impression. My personal rule is that 2 months of lack of activity (and only if changes are necessary!) may be a red flag ONLY after a new release.

I do very much appreciate your effort (which I did review) to get it working on the very latest version of master, it’s the impatience and your dismissal of people simply for not belonging to a particular group that raise people’s hackles.

I do hope that you can continue to contribute, but with some more patience with the rest of us.


#12

That doesn’t seem to be true at all. at-dcjones has been away for quite some time, and the IntervalTrees package has been maintained by a number of other people since (with 20 commits by @bicycle1885, who very well may not have seen your comments yet due to time zone differences [He’s in Japan, and a very nice programmer!])


#13

@ScottPJones I have acknowledged your comments and will work on your suggestions. I was not expecting at all that I wanted a review right away. All I asked was an affirmation from BioJulia Org that it is a long run to be maintained package. I am grateful that @kevbonham replied to that already.

@ChrisRackauckas many of your points are unfounded as you really look at the history from various places. I had not acknowledged @ScottPJones as I had not even seen he has reviewed nor had stated here he has hence the delay in acknowledgement.

As I have already stated when someone will work on something he will definitely be concerned and would do due diligence before proceeding significantly. May be that’s learning I am taking from this thread which I wished never happened.

My sincere apologies to anyone who felt offended but also will like to point that there may be facts which is beyond our knowledge which only got clarified by by @kenbonham. No one is acting a victim card here. Everyone is sincere in there own ways.


#14

@ScottPJones I have worked with @bicycle1885 several times earlier and exchanged notes on several earlier packages as well. BufferedStream being one of them. I will reach out him as well. Thanks for the info.


#15

First of all, thank you for your contributions. I will definitely check your pull request soon.

Actually, the package is not so actively developed but we will continue to maintain it. I maintain a lot of packages and my response may delay for a few days. If you don’t get response from me for a week, that means I just forget about it :sob:, then feel free to ping me.


#16

@bicycle1885 great to see you. Definitely, I still remember all your help in TranscodecStreams. Hopefully I get to migrate it to it soon. Thanks.


#17

Hello @sambitdash, and everyone else. Thank you @ScottPJones for flagging this up to me on the Gitter.

As an administrator and co-founder of BioJulia I have some responses and comments.

First of all @sambitdash, I want to thank you very much for the PR on IntervalTrees.jl updating the 0.7 changes.

The 0.7 transition is putting a large amount of pressure to get rid of breakages and warnings, but the fluidity of master is making this difficult. Several times 0.7 compatiblity PRs have been made to some of our other packages, only for them to have more issues a few days later.

I also acknowlege your comments on other issues in the same repo, in particularily regarding multi-dimensionality and Rectangles. From reading them this morning I can also see how the issue on AbstractIntervalTree might be relevant insofar as generalising the IntervalTrees. But by and large we’re biologists, so multidimensional intervals and some of the things you mention like CAD in the issue are a bit outside of our experience, but if someone steps up to be a dedicated maintaner of the package any such feautres could definately be worked on.

I’m sorry that the 11 or so hour delay caused you to question BioJulia’s activity or Maintainership.
We are a small community, with actually quite a large number of repositories to keep track of.
And some of our formerly active and founding members have left or have had to drastically reduce their activities due to personal and life circumstances I am not going to discuss.

This is in part why we decentralised the code base of BioJulia from the monolithic repo it was, to an ecosystem of packages each with dedicated mainainers, (who are specified in its readme and documentation).
Some BioJulia members are maintainers of multiple packages, some maintain one package, some maintain none. This is because different members have different scientific specialisations and knowledge, and so they maintain the packages they know and can maintain best.

And some packages, like IntervalTrees.jl, have no maintainers, this is largely a historical accident: if a package is not as recently created as others, and is largely stable and is not updated for a long time, then it’s simply that nobody has needed to take up the maintainer mantle for it yet. If you would like to do so, we absolutely welcome you on board in this role!

I’m currently investing some time and effort into making package maintainership much easier for everyone in BioJulia, I’m re-writing a much clearer and neater Contributing Guide this week. In addition to implementing a set of pull request and issue templates to help issues and PRs be resolved in a much more consistent way across all of BioJulia’s repos. I’m also experimenting in some tools to assist in the mundane tasks of BioJulia management, such as bots to ensure content (such as the contributing guide and templates I mentioned) is included and is consistent across all repositories. I’m also looking into some other fun things for our maintainers too, but more on that in the future.

So to summarise I apologise for the inconsistent management of some packages in the ecossytem, believe me I know it’s a problem. There are some solutions I’m working on, but I can only do that when I’m not doing my 9-to-5 job, doing pan-genome assembly research.

In the future, if you require quicker response, I suggest using the BioJulia gitter room here: https://gitter.im/BioJulia/Bio.jl#utm_source=notification&utm_medium=email&utm_campaign=unread-notifications, just because sometimes we miss things on this discourse, because it’s a very big and julia-general forum.

Best wishes to all and thank you all for your continued interest in what BioJulia is doing.


#18

Incredibly classy reply! :+1: :100:


#19

@Ward9250

Thanks a lot for your response.

This was definitely not what made me think the package is not maintained. When I read the issues page and PR page I did find no substantial contribution beyond bug fixes has happened. I replied to Multi-dimensional IntervalTree which was a 2016 request. As you pointed out IntervalTree usage in BioJulia is limited but CAD and Graphics it’s immense or can be made that way. Two of my central packages PDFIO.jl and Rectangle.jl are fully dependent on it along with BufferedStream. My association with BioJulia has been almost a year now. I have been actively in discussion with @bicycle1885 earlier on a daily basis for TranscodecStreams as I planned to migrate PDFIO.jl to that. I clearly understand you have active and not-so active kind of maintenance only libraries. It happens in every org. In any case, IntervalTree saved me almost a few weeks if not months of efforts. And in someway it 's the oxygen data structure for me. I am sure no one enjoys debugging B-Trees :slight_smile:. Since, it’s maintained for BioJulia for scale it’s well tested with perfect code coverage.

My worry is and will continue to be how far the org will have focus on it. Which I guess got clarified. Since, I had already submitted a PR I wanted to know when will someone be able to look at it. Again it were an individual project I would have reached to the specific person and not requested here. But guess responding here was a mistake that should not have happened. When I looked at the BioJulia page this was given as the preferred place to respond.


#20

For what it’s worth, as the original author of IntervalTrees, I have stepped back from developing julia packages, but I do still use julia, and IntervalTrees in particular in my work. Ben and the other BioJulia people are doing a great job, but if it offers any extra reassurance, I’m personally more or less obligated to make sure it keeps working.

Making sure things things work on the latest development version of julia isn’t usually my highest priority, but certainly if you find bugs feel free to ping me on here or github. I don’t monitor issues very closely, but I do read notifications.