Thursday, May 14, 2020

Planet [for the] MySQL Community: Pluto Beta

As indicated in a previous post, I am working on Planet [for the] MySQL Community for which I did a RFC on the Requirements.  I am happy to announce the beta release of Planet [for the] MySQL Community using the Planet Pluto Free Feed Reader and (Static) Website Generator.  If you are in a hurry, you can check it out at http://planet-beta-pluto.oursqlcommunity.org/.  This post describes how I got there, how it was built, how it works and a little more.

You might have caught name changes...  The domain name mysqlcommunity.org has been replaced by ourcommunity.org and the website name Planet MySQL Community has been replaced by Planet for the MySQL Community (and the mysqlcommunity.org GitHub organization has been replaced by oursqlcommunity.org).  The domain name change puts me in compliance with Third Party Usage Guidelines for Oracle Trademarks (prohibited trademark use in Domain Name).  The website name change was made for similar reasons.  Even if it contains MySQL, I believe that the site name is compliant with permissible trademark use in User Groups.  The GitHub organization name change was not needed, but it was made for consistency with the new domain name.

The first part of building Planet for the MySQL Community was to find a Planet software.  My search started at the Venus used by the legacy Planet Mar1aDB website (I cannot write the exact name as I would be censored by Planet MySQL), but I discarded Venus quickly (maybe too quickly) as it looks like an unmaintained project on GitHub (last commit on Feb 18, 2011).  I was pointed to Planet OpenStack which is running the Planet software, but this looks even older than Venus and its website is dead (archive from October 2005).  On the Planet (software) Wikipedia page, I found one Planet Pluto in Go (looks unmaintained, last commit on Jan 13, 2014), one Planet Pluto in Ruby and Moonmoon.  I also got a suggestion from Art van Scheppingen to use the WordPress RSS Aggregator.  The rest of this post is about Planet Pluto in Ruby (Pluto for short).  If I have problems with it, I might explore other options.

The Pluto Organization on GitHub is well structured.  There is code, documentation, a starter kit, and an inventory of Planet sites using Pluto with links to their configuration.  In the inventory, the OpenStreetMap Blogs (OSMB) caught my eye and I used its configuration as a starting point.  I remove the cards from the template (minimalist website from the previously shared requirements), removed the Show Full Text button (no full content from the requirements), fixed a few things (OSMB issue #50, Pluto Blank Template issue #1, OSMB issue #52 and OSMB issue #54), customized the index page and feed, and the result is Planet for the MySQL Community – Pluto Beta.  I think all requirements are met, let me know if I missed something.

Regarding the "Public Version Control" requirement, everything is in the planet repository of the oursqlcommunity.org GitHub organization.

I choose to list the last 100 entries on the aggregator, if you have opinions about this number, feel free to share them.

I initiated the aggregated feeds configuration file (planet.ini) with the blogs that I knew about, and with the feeds I thought were the right one.  I might have skipped blogs that had little MySQL content and for which I did not find a tagged feed.  I might also have taken the wrong feed for other blogs.  If a blog is not there and you wish it to be aggregated (it does not need to be your blog), follow the How to add/remove your feed procedure (if you are not able to find the procedure, the site should be improved, so please let me know).  If your blog is there, please check that I have the right feed, and if not you can fix things using the same procedure.

I know that some posts are there twice, it is because I also aggregate Planet MySQL and Mar1aDB so a post can some from many sources (issue #1).  Also, a post coming from Planet MySQL might hide the matching post from the blog feed (issue #2).  This will be fixed once more blogs are added and when I remove aggregation from Planet MySQL and Planet Mar1aDB.

The default behavior of Planet Pluto is different from the software used by Planet MySQL: when a post is updated by its author, it jumps back at the head of the feed (issue #3).  At this point and IMHO, this is not good or bad, just different, and I have not made my mind if this is something I should spend time changing; your comments are welcome on this subject, please put them in the GitHub Issue.

Some details about the infrastructure:
  • the website is hosted in a single vm in AWS,
  • Nginx is used as the web server, Debian 10 as the Linux distribution,
  • the feeds are polled every 15 minutes before regenerating the static files,
  • automation and monitoring need some more work (the feeds polling and file generation are currently done by a bash one-liner running in a screen).
Another thing: I am far from skilled in the usage of Embedded Ruby, HTML, CSS and JavaScript.  If you have some knowledge of these technologies, please have a look at the code to check if there are obvious mistakes or browser incompatibilities.  If you spot one, you can open an issue on GitHub, or even better submit a Pull request, and in a last resort you can send a mail at planet AT oursqlcommunity DOT org.

As I wrote in the previous post, I am planning to build a team of people for managing Planet for MySQL Community.  Help needed, so contact me if you want to contribute (some sysadmin skills required).

And one last thing, this is a beta, so everything, including the URL, may change.  It might also not go in release if funding or sponsors are not found (subject covered in the previous post), please contact me if you can help on this. 

And as always, your comments are welcome in the mysqlcommunity_org channel in MySQL Community Slack.

2 comments: