There is plenty on this site advocating the use of subrepos to organize your shared libraries. Also, the prevailing advice is to maintain devel/stable copies (and possibly QA) for your repositories. I see the merits for both ideas, especially in our workflow.
How do these two concepts interact? For example, if I have this:
Application
.hg/
.hgsub : Library = http://.../Repo/Library/Stable
...
Then both my stable and devel versions of Application would be using the stable library. This makes sense, because when I'm making my application I don't want to be bothered by people making breaking changes to the Library, so I won't see new risky changes being made in Library-Devel until they are tested and pushed to Library-Stable (and someone updates the Application to be using that newer version).
However, what if I'm working on a feature in my App that also requires new development in the Library?
If I change my .hgsub temporarily to point to Library-Devel, then everyone else gets that too. Plus I need to remember to change it back when I push my Library changes to stable.
If I make a feature branch repo off App-Devel then I can change the .hgsub in there without impacting anyone working directly on App-Devel, but I still need to make sure I clean up my .hgsub before pushing back from App-FeatureA to App-Devel.
The other idea I had was to just develop the Library aspect of the new feature in isolation of the App and ensure the tests in the Library repo were sufficient that I could trust them to make my push to Stable safe. However, this isn't reality for a number of our projects and while desirable this change would not happen overnight so isn't an immediate option.
How do other people handle the interaction between the devel/stable paradigm, and subrepos?