The History of Country Select
Before rails 2.0 we received a large number of tickets with modifications to the list of countries in our built in country_select helper. Some of these were people with conflicting preferences, Great Britain vs United Kingdom. Others were questions about whether we should use the english spelling or the native ones, Spain vs Espana.
These patches were a constant distraction and I was concerned about the potential for stepping into controversial issues or legal matters. To my mind there were basically two options: synchronise our list of countries with some neutral source, or remove our list of countries entirely. Given the large number of people who relied on that functionality it seemed simpler at the time to use an ISO standard, and the ISO 3166 Long Names list seemed perfect.
To my mind the ISO list was ‘completely neutral’ and an ‘impartial alternative’, it let Rails have a list that was devoid of my own personal politics. We could avoid any suggestion that we were picking sides in border disputes or questions of recognition and nicely side step the definition of ‘country’ by simply appealing to the ISO.
We received a few patches since we made the switch, and rejected them all by saying “It’s not our place to decide what a country is, please take it up with the ISO”.
Where we find ourselves
However the names of two countries on that list have caused issues for people in recent months. The first was the inclusion of “Palestinian Territories, Occupied”, and the second is the name for Taiwan as “Taiwan, Province of China”. The second issue has recently burst into life again
Given the strength of feelings on the matter we decided to remove the country_select functionality altogether from future versions of rails. Clearly the ISO 3166 list isn’t the ‘completely neutral’ list that I hoped for, and I deeply regret the offense that I’ve caused.
This controversy has been especially frustrating for me because I actually agree with those people who have been upset by this issue. It’s difficult because despite my opinions on the matter, I’ve tried to be as neutral as possible, doing my best to pick the path of least resistance. Unfortunately, it seems that I’ve failed. So here’s my attempt to fix things.
I’m reluctant to make any deviations from the list provided by the ISO organisations as it’ll open the door to several other issues which we’re not qualified to answer. Just a short list of potential complications are:
So we went back to the original decision, and chose the other path. country_select is no longer in rails, and ideally that would be the end of the matter. But to allow users to avoid errors in their applications we added a plugin.
What’s the Way Forward?
As has been pointed out repeatedly, and angrily, this just moves the issue from one git repository to another. Despite the fact that it now warns you when you install it, people will blindly install the plugin, ignore the warning, and piss people off. So I figure there are a few options:
- Choose another list of countries provided by some other authority
- Remove the plugin and break everyone’s applications come 2.2, unless they want to use the list of alternative plugins which have already sprung up
- Remove the taiwan entry from the plugin, so at least the offensive line doesn’t get displayed.
- Follow some corporate guidelines such as IBM’s
I’d appreciate any feedback from the Taiwanese rails community about what they think we should do here.