This is the traditional understanding:
Pre Alpha - Still in someone's editor. It does not run, or barely runs. In some cases, the UI is complete at this point and advertises all of the planned functionality. Not much works, its a prototype. Software at this stage should not be published, at all, except amongst developers.
Alpha - Something that doesn't crash all of the time and is not yet feature complete. At this point, its probably going to hallway testing and a meeting will be held to differentiate usability issues from feature creep. Software at this stage should not be released for public testing.
Beta - Stable enough to let loose to a select group of users. Ideally, you know that every single user who receives a copy is capable of finding bugs and reporting them with an adequate degree of articulation. In a perfect world, hallway testing solves everything, but the world is not perfect. Power users are your friend in the beta period. Depending on the overall stability of the software, betas may be public. Unless the app 'just works' 95+ % of the time, the beta should be private.
Release Candidate (aka RC) - You will often have multiple release candidates. You put it out in beta, got great feedback, fixed a bunch of stuff and everything seems to work. Still, bugs hide well and you don't want an official release to flop. At this point, you want only bugfixes to what exists, you don't want to do any major surgery. Its expected, at this point that any drastic changes have been completed. Any revisions at this point should be trivial, at best.
Release - It works already, send it out into the wild, then start over again.
Next - Usually somewhat stable builds of the next version of the app, often called edge. Basically, the same as beta, but perhaps not for the faint of heart. The main difference is, its based off the previous release version.
Please note, while I can't quite remember links well enough to cite references, a lot of
start up companies use 'alpha' or even 'pre-alpha', or horridly even something like 'Join our pre-alpha beta' as marketing buzz to try and build a community.
You need only be concerned with marking your app as beta once, and providing a very easy and intuitive means for users to tell you what they think, or what broke. Better yet, handle breakage adequately and provide a convenient place for users to add comments. Anything that is not at least beta quality has no business being out in the wild.
When out of beta, there's no need to put 'beta' anywhere. All risky stuff is in the edge version, which won't become the newest current version until its completely tested (RC versions help here, they can entice users who prefer stable builds to test, provided you give them an easy way out and path back to sanity). At that point (when you move next to stable) you need to make sure users can report issues, but why tag something beta that was previously pronounced as stable? You get one 'golden' beta period, make the most of it. After its done, people expect stable software unless using/running next or edge builds.
Free / Open source software is no exception. If someone pulls down your development repository, they have no reasonable expectation that the resulting build will work. What counts, in that case is what you recommend that people actually use.
If you see a 'pre-alpha' app available to the public, there's a good chance that whoever made it is not following any kind of sensible convention beyond marketing hype, hence throw the Wikipedia definition out the window as they clearly are dancing to their own tune.