Why is there no way to roll back once you upgrade?
Well, it is mostly possible. The only time it isn't is when we make a database change that isn't backwards compatible. Writing a second version of upgrade scripts for every database change we make would be twice as much maintenance for something most people wouldn't use.
Why is there no way to record what version of plugins you have installed besides copying the entire node_modules directory (that is ignored from source control btw)?
./nodebb plugins will list out all active plugins on your forum
Why do half the plugins and all my templates break when I upgrade?
We try to avoid breaking changes but NodeBB is still under heavy active development. We try to warn people to always check their site setup in a staging instance before upgrading, especially if that upgrade is marked as breaking. We also tell people to backup their NodeBB install and database before upgrading. Our versions are kinda weird and don't really follow the conventions but we're working on that. For now, our versioning works like this:
- X is the named version, we increment it when we feel that NodeBB is significantly different than before
- Y is the major version, we increment it when we make breaking changes
- Z is the minor version, we increment it when we make bug fixes and improvements
In the future we plan on moving to Semver where
- X is the major version, which is incremented on breaking changes
- Y is the minor version, which is incremented on improvements and additions
- Z is the patch version, which is incremented on bug fixes
Breaking changes are a part of life, and while we try to minimize them, sometimes they are necessary to implement features that people want. Other times, they slip in accidentally.
We have a very large API surface and imperfect tests and documentation, which we are working on to improve.
I'm not sure. Please share how you normally upgrade. Also, if you'll share what version you upgraded from and to I'd appreciate it.