Alpha API indicates that the best way for a particular feature to be presented hasn't been firmly settled on as of yet, and the current way is being introduced on a trial basis. Its spirit is not as much a warning that "this API might change", its more an invitation to the users saying, "heres a new idea I had. I'm not sure if this is the best way to do it. Do you like it ? Should we do this differently? Or is it good the way it is ?". Alpha API features are always small in scope and are presented in releases so that the greatest number of users get some hands-on experience with it; large-scoped API or architectural changes will always be discussed on the mailing list/Wiki first.
Reasons why a feature might want to change include:
A good example of what was essentially an "alpha feature" is the private=True
flag. This flag on a relation()
indicates that child objects should be deleted along with the parent. After this flag experienced some usage by the SA userbase, some users remarked that a more generic and configurable way was Hibernates cascade="all, delete-orphan"
, and also that the term cascade
was clearer in purpose than the more ambiguous private
keyword, which could be construed as a "private variable".