A company releases a library with an open source MIT license.
If they wanted to, could they change the license to be very restrictive so competitors cannot use it?
What impact would this have on previous versions?
Meaning if on Nov. 1st they make it very restrictive to some other license, would all versions prior to Nov 1st be still on MIT?
1
The copyright owner of a work determines what license to use when distributing their own property (code in this case); so the company can decide to switch to a more restrictive license at any time if they so wish.
Note that that does mean they must own all of the work, or have obtained licenses for the code from whomever does own it that grants them the right to re-license the work under a restrictive license.
However, code previously licensed under a permissive license, gives others the right to distribute that code to anyone they wish to. So, old code, once distributed under a permissive license, can be re-distributed under that same license. In theory that means the old code remains available to everyone as Open Source software, provided someone continues to distribute it.
The owner can decide to stop distributing the code under the permissive license, but as the older versions have already been distributed with a permissive license granting the right to re-distribute without restrictions, they cannot prevent others from doing so.
1
They can IF they own it.
If they have accepted contributions from other users – then they would need the agreement of those other users. This is the point of GPL, you force other people to play nicely with your code, just as you did with theirs.
Since the license covers distribution the terms you agreed to when they distributed it to you still apply, they can’t suddenly revoke an MIT library that has been in use for years.
2
Read the license. The MIT license is only a few lines long, and the answer to your question is contained in the license itself. Here’s one version from Wikipedia:
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
“Software”), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions…
So, if you obtain some software under the license above, you have permission to use it. If the copyright owner decides to stop granting that permission in the future, that’s their business, but it doesn’t change the fact that they’ve already granted permission to you, and furthermore they’ve also given you permission to publish, distribute, and so on provided you do so under the same terms. You can see for yourself that there’s no provision for revoking that permission as long as you comply with the license.
1
IANAL but if the author of a piece of code licenses it under the MIT license and you use it in a program, the copyright holder cannot then change the license retroactively and (for example) sue you for copyright infringement. All they can do is license new versions under a different license. They can supply the original version under different license as well, but that does not invalidate the MIT license they granted to you already.