
Bulat Ziganshin wrote:
step 1: create library NewArray with modules Data.NewArray.* copied one-to-one from Data.Array.* and publish it as version 1
step 2: raise NewArray version to 2.0 and start making changes. once we've finished, raise version to 3.0 and keep interfaces for 3.* intact so anyone can import NewArray 3.* and got latest version with exactly the same interface as he used
Why not use some convention on the version number, a bit like in the Linux kernel (odd minor = dev, even minor = stable)? Instead of creating NewArray, just tag Array with version 1.0.x and create a new branch 1.1.y as a development version of 1.0.x. Your NewArray 2.0 proposal will then become Array numbered 1.2.x for stable version and 1.3.y for development (unstable) version (your version 3.0 would become 1.4.x and 1.5.y respectively). Moving to versions 2.0.x - 2.1.y would mean a major change of all standard libraries (cross-cutting changes) like moving to features of the last standard or reflecting a reorganization of the standard classes. It would allow to keep track of many dev + stable releases in parallel without changing the libraries names. It also allows to release development version more often than stable version. Best regards, ld.