RFC: Versioning
#9730
Replies: 1 comment 11 replies
-
Hi. There is no need to follow angular versions, because ng-mocks doesn't depend on angular implementation and works with any angular version (apart from latest features which should be added to ng-mocks). Semantics is used in case of dependency when each lib version depends on a specific angular implementation, whereas that's not the case for ng-mocks. |
Beta Was this translation helpful? Give feedback.
11 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Background
When ngMocks was created, it was just a normal testing library, as time moved on, it improved into being one of the most used libraries for testing in the angular ecosystem. However, its development doesn't follow the normal development from the majority of Angular libraries like Angular Material and others.
As you can see in the official docs, the latest version can be tested against an Angular 5 application.
Proposal
I would like to propose that ngMocks follows the Angular team versioning logic such that we would have:
--
Advantages
Following the standard versioning system
The current versioning system doesn't exist for this library, it tries to keep all possible versions happy. This increases the difficulty to add new features or fix changes that occur when the Angular Team adds big functionalities, example: the addition of the new
input.required
that created several issues in the repository.Less need for distinct behavior between versions
With a focus on the last 3 versions, there is less of a need to test against old specs for errors that break only in old versions of Angular that are not unsupported. This does not mean that the library would not add patches to these versions (see next advantage).
Better bug prioritization
A bug on the latest version of Angular is not as important as a bug on an older and unsupported version.
This would help maintain the library since bugs in old version could take a reduced importance versus new changes that will remain going forward.
Reduced dimension and easier maintainability
This library tests its functionality versus several issues, some of which only occur in very old versions of Angular that are no longer supported. Keeping these files for newer versions doesn't bring much value and adds dimension to the library.
With the goal of making the library easier to maintain, reducing the dimension would help new developers to contribute and lighten the weight on @satanTime.
More predictable package.json behavior
It is a bit strange well Angular changes from version x.y.z to x+1.0.0, and the library keeps the same version.
For users who are migrating their applications, some may lose time checking if the library keeps up to date. By following the same version as the Angular team for the main branch, it makes the migration behavior more predictable for existing applications.
Beta Was this translation helpful? Give feedback.
All reactions