I think myprogram
needs to release 1.1.0 which supports the myprog
alias. If the user invokes myprogram
then it should present a notice/warning to the programmer that this name will be deprecated in the next major version release.
Upon release of myprog
2.0.0, myprogram
should no longer work. The release of 2.0.0 could be nothing more than a name change. This will help to make the transition easier for developers since they have to worry about just a single compatibility-breaking change.
An alternative route is to fork myprogram
into myprog
and issue an abandonment notice like PHPExcel did; https://github.com/PHPOffice/PHPExcel
Whether or not your software rename constitutes a bump down to 1.0.0 instead of 2.0.0 is not a choice I am familiar with.
Regardless, I don't think versioning is going to be the big stumbling block but rather the name change itself. It sounds like a headache especially if people come across old tutorials for myprogram
and are not aware of the name change.
Aliasing example in PHP:
<?php
class myprogram
{
function __construct()
{
trigger_error( 'myprogram is being renamed to myprog in v2.0.0. Please consider switching to myprog today.', E_USER_NOTICE );
}
}
class myprog extends myprogram
{
function __construct()
{
// empty to avoid calling myprogram's constructor
}
}
$myprogram = new myprogram();
myprog
at 1.0.0 regardless of which version you reached inmyprogram
.myprogram
tomyprog
but toprogram4whatzzit