When should you tag 1.0?

Something I've seen, both with contributed Drupal modules and other open-source projects, over the past few years is they spend a lot of time in the 0.x versions or releasing alpha and beta versions rather than releasing a 1.0 or stable version.

I presume it's a concern around backward compatibility and maintaining that once a stable version is released.

But, if you want people to use your module or upgrade it to the latest version, that's much easier to do once there's a stable version.

Some organisations prohibit using alpha or unstable versions of projects so, if there isn't a stable version, they wouldn't be able to use it.

Personally, if I'm using one of my open-source modules, plugins or libraries in production, there should be a stable 1.0 version tagged.

Once it's in production, I'm already making an implied commitment that it's going to be stable and I won't break everything in the next release, so why not make that explicit and tag a stable release?

Version numbers are free and nothing is stopping you from deprecating code and releasing a new major version with breaking changes in the future, so go ahead and tag that stable version.