near / near-sdk-rs

Rust library for writing NEAR smart contracts
https://near-sdk.io
Apache License 2.0
454 stars 243 forks source link

SDK release and backward compatibility #189

Closed ilblackdragon closed 4 years ago

ilblackdragon commented 4 years ago

Currently when something changes on nearcore runtime side we may have a corresponding change in sdk. But that new sdk doesn't work with stable version of nearcore.

We need to either make sdk work in backward compatible way or not release new sdk until we have code change required made into stable

MaksymZavershynskyi commented 4 years ago

In the Middleware team we have discussed the release scheme that would prevent such confusion. When adding new host functions there is no simple way to make it backward compatible because of how Wasm compilation works and how pwasm-utils perform static checks.

Specifically for near-sdk-rs, near-sdk-as we will do the following we will be releasing the version with -beta suffix to emphasize that it works only on betanet before promoting this to a release without suffix. This scheme might also be adopted by other tools like: near-api-js.

Overall, we have decided to perform the following items for near-sdk-rs, borsh, runtime crates:

Overall, I am going to bring up the issues of coordinating crate releases during our upcoming eng sync. I think we need to cleanup versioning of nearcore crates, including adding changelogs, and having cross-team coordination.

I am closing this issue, since we have discussed the solution.