A couple of months ago my colleague Michael @mythmon Cooper wanted to add a feature to the front-end code of Whatsdeployed and learned that the whole front-end is spaghetti jQuery code. So, instead, he re-wrote it in React. My only requirements were "Use
create-react-app and no
redux", i.e. keep it simple.
We also took the opportunity to rewrite some of the ways that URLs are handled. It used to be that a "short link" would redirect. For example
GET /s-5HY would return
Location: ?org=mozilla&repo=tecken&name=Dev&url=https://symbols.dev.mozaws.net/__version__&name=Stage... Basically, the short link was just an alias for a redirect. Just like those services like
g.co. Now, the short link is a permanent fixture. The short link is included in the XHR calls to the server for getting the relevant data.
All old URLs will continue to work but now the canonical URL becomes
/s/5HY/mozilla-services/tecken, for example. The
:org/:repo isn't really necessary because the server knows exactly what
5HY (in this example means), but it's nice for the URL bar's memory.
Another thing that changed was how it can recognize "bors commits". When you use bors, you put a bunch of commits into a GitHub Pull Request and then ask the
bors bot to merge them into
master. Using "bors mode" in Whatsdeployed is optional but we believe it looks a lot more user-friendly. Here is an example of
mozilla/normandy with and without bors toggled on and off.
Thank you mythmon!
Lastly, hopefully this will make it a lot easier to contribute. Check out https://github.com/peterbe/whatsdeployed. All you need is Python 3, a PostgreSQL, and almost any version of Node that can run create-react-apps. Ping me if you find it hard to get up and running.