Skip to content

Vendor in kastore.c/h? #1967

@jeromekelleher

Description

@jeromekelleher

A lot of complexity in the repo layout comes from us using git submodules to bring in the code for kastore, and then do some funky symlinking so that we can use the same code when building the C library and the Python module. #1958 simplifies this a bit, but introduces the problem that we have to update kastore in two different places.

This is quite a bit of complexity in order to, fundamentally, get two files into the repo. We could just copy in these files and be done with it. It would make building the library significantly easier for third parties, because they wouldn't have to worry about kastore also. It also makes it more likely that kastore would be kept up to date in third party code.

I did it like this originally so that it'd be easy to keep kastore up to date, but kastore is stable now and is unlikely the change much, so that motivation isn't really there any more.

The cons of vendoring in like this is that some packagers don't like it and specifically ban it, but I think the degree to which kastore really is a third party dependency is pretty minimal. It's not like anyone else is using kastore beyond tskit.

Any thoughts here, @benjeffery, @bhaller, @molpopgen ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    C APIIssue is about the C APIInfrastructure and toolsDevelopment infrastructure and tools

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions