-
Notifications
You must be signed in to change notification settings - Fork 636
Dynamo Versions
Racel edited this page Apr 16, 2018
·
8 revisions
As of Dynamo 1.0, Dynamo has gone to semantic versioning. This will enable us to guarantee the following:
- Zero touch libraries created for version X.0 will continue to work in X.y.z.
- NodeModel implementations created for version X.0 will continue to work in X.y.z.
- Extensions created for X.0 will continue to work in X.y.z.
- Our dependency versioning is consistent with NuGet.
The following rules of thumb will aid you in making the right decisions when discussing and developing new functionality and refactoring.
- You must not change the namespace of a type.
- You must not remove a type, method, or property.
- You must not rename a type, method, or property.
- You can add a type, method, or property.
- You can move a type to a different assembly as long as the type's namespace remains the same.
- You can mark a method or property as obsolete. When doing so, be sure to provide a message referencing the replacement functionality.
- For more .Net API breaking changes, you can refer to this S.O. post.
- You can choose to develop only against X.0.0 releases which have a stable API. This guarantees compatibility with the version of Dynamo that you advertise, but does not allow you to access APIs introduced in later releases.
- If a new API is available, you can use reflection to test whether the API exists. You can then implement conditional logic to call the new API if it is available, or call the stable API. This will ensure that your code works with the new API AND the old API.
Looking for help with using the Dynamo application? Try dynamobim.org.
- Dynamo 2.0 Language Changes Explained
- How Replication and Replication Guide work: Part 1
- How Replication and Replication Guide work: Part 2
- How Replication and Replication Guide work: Part 3