Skip to content

Release 1.0 #2007

@danchr

Description

@danchr

From an outside perspective, versioning of Dulwich releases seems rather arbitrary:

  • Despite being a rather old library, all releases start with 0.x.y indicating that it's somehow “not done”.
  • The distinction between major and minor releases is irrelevant, as Dulwich has never had a major release.
  • Minor releases are expected to contain API changes — although ideally, they should be backwards compatible.
  • Patch releases should only fix bugs, and should never change APIs.

Yet, patch releases frequently contain breaking changes, such as #1891 which changed the return type of client.get_credentials_from_store() from a tuple to a generator of tuples. As the maintainer of a project depending on Dulwich, this is quite annoying. Not even guarding on minor releases is sufficient; I should probably mark it as incompatible with any future release.

(Now hg-git has also had a fair amount of usages of functions prefixed with _, i.e. private ones. When those break, that's our fault. But that's expected; what's annoying is changes to exposed functions, with no regards to backward compatibily, and in a release supposed to be compatible.)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions